❶ [重慶思庄每日技術分享]-linux 系統 修改內核參數導致不能啟動的問題
錯誤原因:
錯誤修改了 /etc/selinux/config文件。
錯誤信息:
重啟後發現出現錯誤,不能繼續啟動
Kernel panic - not syncing: Attempted to kill init
解決方案:
1.系統啟動的時候,按下『e』鍵進入grub編輯界面,編輯grub菜單,選擇「kernel /vmlinuz-2.6.23.1-42.fc8 ro root=/dev/vogroup00/logvol00 rhgb quiet」 一欄,按『e』鍵進入編輯,在末尾增加enforcing=0,即:
kernel /vmlinuz-2.6.23.1-42.fc8 ro root=/dev/vogroup00/logvol00 rhgb quiet enforcing=0 或者selinux=0
按『b』鍵繼續引導,OK順利前進。
2.後來發現,通過改變/etc/grub.conf 在倒數第二行添加selinux=0 也可。
3.(推薦) 檢查/etc/selinux/config文件是否出錯
注意事項:
1.系統啟動後,按e ,如果沒有對應kerne選項繼續按e 找到
2.在出現命令行後 空格加入 enforing=0 回車
3.除保存編輯不要按回車,esc等按鍵。輸入enforing=0後直接按b 繼續啟動。
❷ linux中內核參數somaxconn
在Linux中,/proc/sys/net/core/somaxconn這個參數,linux中內核的一個不錯的參數somaxconn。
對於一個TCP連接,Server與Client需要通過三次握手來建立網路連接.當三次握手成功後,
我們可以看到埠的狀態由LISTEN轉變為ESTABLISHED,接著這條鏈路上就可以開始傳送數據了.
每一個處於監聽(Listen)狀態的埠,都有自己的監聽隊列.監聽隊列的長度,與如下兩方面有關:
- somaxconn參數.
- 使用該埠的程序中listen()函數.
1. 關於somaxconn參數:
定義了系統中每一個埠最大的監聽隊列的長度,這是個全局的參數,默認值為1024,具體信息為:
Purpose:
Specifies the maximum listen backlog.
Values:
Default: 1024 connections
Range: 0 to MAXSHORT
Type: Connect
Diagnosis:
N/A
Tuning
Increase this parameter on busy Web servers to handle peak connection rates.
看下FREEBSD的解析:
限制了接收新 TCP 連接偵聽隊列的大小。對於一個經常處理新連接的高負載 web服務環境來說,默認的128太小了(web伺服器listen函數的backlog會給我們內核參數的net.core.somaxconn先知道128,比如nginx)。大多數環境這個值建議增加到 1024 或者更多。 服務進程會自己限制偵聽隊列的大小(例如 sendmail(8) 或者 Apache),常常在它們的配置文件中有設置隊列大小的選項。大的偵聽隊列對防止拒絕服務 DoS 攻擊也會有所幫助。
socket tcp的backlog的上限是min(backlog,somaxconn),其中backlog是應用程序中傳遞給listen系統調用的參數值,somaxconn是內核規定的最大連接數。
❸ linux內核參數
"The story of _OSI(Linux)"注釋.此參數用於修改內核中的操作系統介面字元串(_OSI string)列表默認值,這樣當BIOS向內核詢問:...
❹ 一般優化linux的內核,需要優化什麼參數
首先要知道一點所有的TCP/IP的參數修改是臨時的,因為它們都位於/PROC/SYS/NET目錄下,如果想使參數長期保存,可以通過編輯/ETC/SYSCTL.CONF文件來實現,這里不做詳細說明,只針對Linux的TCPIP內核參數優化列舉相關參數:
1、為自動調優定義socket使用的內存
2、默認的TCP數據接收窗口大小(位元組)
3、最大的TCP數據接收窗口
4、默認的TCP發送窗口大小
5、最大的TCP數據發送窗口
6、在每個網路介面接收數據包的速率比內核處理這些包速率快時,允許送到隊列的數據包最大數目
7、定義了系統中每一個埠最大的監聽隊列長度
8、探測消息未獲得相應時,重發該消息的間隔時間
9、在認定tcp連接失效之前,最多發送多少個keepalive探測消息等。
❺ 如何用命令行設置linux內核參數
Linux設置內核參數的方法
1 內核參數的查看方法
使用「sysctl -a」命令可以查看所有正在使用的內核參數。內核參數比較多(一般多達500項),按照前綴主要分為以下幾大類:net.ipv4、net.ipv6、net.core、vm、fs、dev.parport、dev.cdrom 、dev.raid、kernel等等。相同的linux,安裝的組件和使用的方式不一樣,正在使用的內核參數是不一樣的。
所有的內核參數的說明文檔是放到/usr/src/linux/Documentation/sysctl中的,如果想知道對內核參數的說明,可以到該目錄下查看相應的說明文檔。
2 內核參數的的設置方法
由於Linux的內核參數信息都存在內存中,因此可以通過命令直接修改,並且修改後直接生效。也可以通過文件的方式進行設置。下面就介紹這兩種修改方法。
2.1 命令設置的方式
可以用兩種方法實現。
1、使用「sysctl -w 參數名=值」的方式
假設我們把net.ipv4.ip_forward的值修改為1,使用命令「sysctl -w net.ipv4.ip_forward=1」。
2、修改內核參數對應的proc文件
內核參數位於/proc/sys/之下,參數名稱是以文件所在的路徑,並將「/」以「.」來取代。舉例來說,/proc/sys/net/ip_forward的參數名稱為net.ipv4.ip_forward。
同樣把net.ipv4.ip_forward的值修改為1,使用命令「echo 「1」 > /proc/sys/net/ipv4/ip_forward」。
注意,這里proc文件跟普通的文件不一樣。一般一個文件用echo寫入內容之後,會變成一個文本文件,但echo修改proc文件之後還是個空文件。