文章轉自 http://blog.chinaunix.net/uid-22287947-id-1775633.html
Linux IPC 參數設定-
命令方式: echo 80 > /proc/sys/vm/overcommit_ratio, etc每個消息隊列的最大字節限制。
MSGMNI
整個系統的最大數量的消息隊列。
MSGGSZ
消息片斷的大小(字節)。大於該值的消息被分割成多個片斷。
MSGSEG
在單個隊列裏能存在的最大數量的消息片斷。
MSGTQL
整個系統的最大數量的消息。
MSGMAX
單個消息的最大size。在某些操作系統例如BSD中,你不必設置這個。BSD自動設置它爲MSGSSZ * MSGSEG。其他操作系統中,你也許需要改變這個參數的默認值,你可以設置它與MSGMNB相同。
SHMSEG
每個進程的最大數量的共享內存片斷。
SHMMNI
共享內存片斷數量的系統級的限制。
SHMMAX
單個共享內存片斷的最大size。
SHMALL
可分配的共享內存數量的系統級限制。在某些系統上,SHMALL可能表示成頁數量,而不是字節數量。
在Linux上配置消息隊列,增加下列行到/etc/sysctl.conf:
例如:
kernel.msgmnb=8192
kernel.msgmni=40
kernel.msgmax=8192
kernel.shmall=2097152
kernel.shmmni=32
kernel.shmmax=16777216
運行:
insserv boot.sysctl
boot.sysctl start
1) /proc/sys/kernel/ctrl-alt-del
該文件有一個二進制值,該值控制系統在接收到ctrl+alt+delete按鍵組合時如何反應。這兩個值分別是:
零(0)值,表示捕獲ctrl+alt+delete,並將其送至 init 程序;這將允許系統可以安全地關閉和重啓,就好象輸入shutdown命令一樣。
壹(1)值,表示不捕獲ctrl+alt+delete,將執行非正常的關閉,就好象直接關閉電源一樣。
缺省設置:0
建議設置:1,防止意外按下ctrl+alt+delete導致系統非正常重啓。
該文件指定了從一個進程發送到另一個進程的消息的最大長度(bytes)。進程間的消息傳遞是在內核的內存中進行的,不會交換到磁盤上,所以如果增加該值,則將增加操作系統所使用的內存數量。
缺省設置:8192
該文件指定一個消息隊列的最大長度(bytes)。
缺省設置:16384
該文件指定消息隊列標識的最大數目,即系統範圍內最大多少個消息隊列。
缺省設置:16
該文件表示如果發生“內核嚴重錯誤(kernel panic)”,則內核在重新引導之前等待的時間(以秒爲單位)。
零(0)秒,表示在發生內核嚴重錯誤時將禁止自動重新引導。
缺省設置:0
該文件表示在任何給定時刻,系統上可以使用的共享內存的總量(bytes)。
缺省設置:2097152
該文件表示內核所允許的最大共享內存段的大小(bytes)。
缺省設置:33554432
建議設置:物理內存 * 50%
實際可用最大共享內存段大小=shmmax * 98%,其中大約2%用於共享內存結構。
可以通過設置shmmax,然後執行ipcs -l來驗證。
該文件表示用於整個系統的共享內存段的最大數目(個)。
缺省設置:4096
該文件表示內核所能使用的線程的最大數目。
缺省設置:2048
該文件用於控制內核信號量,信號量是System VIPC用於進程間通訊的方法。
建議設置:250 32000 100 128
第一列,表示每個信號集中的最大信號量數目。
第二列,表示系統範圍內的最大信號量總數目。
第三列,表示每個信號發生時的最大系統操作數目。
第四列,表示系統範圍內的最大信號集總數目。
所以,(第一列)*(第四列)=(第二列)
以上設置,可以通過執行ipcs -l來驗證。
1) /proc/sys/vm/block_dump
該文件表示是否打開Block Debug模式,用於記錄所有的讀寫及Dirty Block寫回動作。
缺省設置:0,禁用Block Debug模式
該文件表示髒數據到達系統整體內存的百分比,此時觸發pdflush進程把髒數據寫回磁盤。
缺省設置:10
該文件表示如果髒數據在內存中駐留時間超過該值,pdflush進程在下一次將把這些數據寫回磁盤。
缺省設置:3000(1/100秒)
該文件表示如果進程產生的髒數據到達系統整體內存的百分比,此時進程自行把髒數據寫回磁盤。
缺省設置:40
該文件表示pdflush進程週期性間隔多久把髒數據寫回磁盤。
缺省設置:500(1/100秒)
該文件表示內核回收用 於directory和inode cache內存的傾向;缺省值100表示內核將根據pagecache和swapcache,把directory和inode cache保持在一個合理的百分比;降低該值低於100,將導致內核傾向於保留directory和inode cache;增加該值超過100,將導致內核傾向於回收directory和inode cache。
缺省設置:100
該文件表示強制Linux VM最低保留多少空閒內存(Kbytes)。
缺省設置:724(512M物理內存)
該文件表示當前正在運行的pdflush進程數量,在I/O負載高的情況下,內核會自動增加更多的pdflush進程。
缺省設置:2(只讀)
該文件指定了內核針對內存分配的策略,其值可以是0、1、2。
0, 表示內核將檢查是否有足夠的可用內存供應用進程使用;如果有足夠的可用內存,內存申請允許;否則,內存申請失敗,並把錯誤返回給應用進程。
1, 表示內核允許分配所有的物理內存,而不管當前的內存狀態如何。
2, 表示內核允許分配超過所有物理內存和交換空間總和的內存(參照overcommit_ratio)。
缺省設置:0
該文件表示,如果overcommit_memory=2,可以過載內存的百分比,通過以下公式來計算系統整體可用內存。
系統可分配內存=交換空間+物理內存*overcommit_ratio/100
缺省設置:50(%)
該文件表示在寫一次到swap區的時候寫入的頁面數量,0表示1頁,1表示2頁,2表示4頁。
缺省設置:3(2的3次方,8頁)
該文件表示系統進行交換行爲的程度,數值(0-100)越高,越可能發生磁盤交換。
缺省設置:60
該文件表示是否使用最新的32位共享內存mmap()系統調用,Linux支持的共享內存分配方式包括mmap(),Posix,System VIPC。
0, 使用最新32位mmap()系統調用。
1, 使用2.4內核提供的系統調用。
缺省設置:0
該文件表示系統保留的hugetlb頁數。
該文件表示允許使用hugetlb頁創建System VIPC共享內存段的系統組ID。
1) /proc/sys/fs/file-max
該文件指定了可以分配的文件句柄的最大數目。如果用戶得到的錯誤消息聲明由於打開
文件數已經達到了最大值,從而他們不能打開更多文件,則可能需要增加該值。
缺省設置:4096
建議設置:65536
該文件與 file-max 相關,它有三個值:
已分配文件句柄的數目
已使用文件句柄的數目
文件句柄的最大數目
該文件是隻讀的,僅用於顯示信息。
/proc/sys/net/core/ 優化
該目錄下的配置文件主要用來控制內核和網絡層之間的交互行爲。
1) /proc/sys/net/core/message_burst
寫新的警告消息所需的時間(以 1/10 秒爲單位);在這個時間內系統接收到的其它警告消息會被丟棄。這用於防止某些企圖用消息“淹沒”系統的人所使用的拒絕服務(Denial of Service)攻擊。
缺省設置:50(5秒)
該文件表示寫每個警告消息相關的成本值。該值越大,越有可能忽略警告消息。
缺省設置:5
該文件表示在每個網絡接口接收數據包的速率比內核處理這些包的速率快時,允許送到隊列的數據包的最大數目。
缺省設置:300
該文件表示每個套接字所允許的最大緩衝區的大小。
缺省設置:10240
該文件指定了接收套接字緩衝區大小的缺省值(以字節爲單位)。
缺省設置:110592
該文件指定了接收套接字緩衝區大小的最大值(以字節爲單位)。
缺省設置:131071
該文件指定了發送套接字緩衝區大小的缺省值(以字節爲單位)。
缺省設置:110592
該文件指定了發送套接字緩衝區大小的最大值(以字節爲單位)。
缺省設置:131071
/proc/sys/net/ipv4/ 優化
1) /proc/sys/net/ipv4/ip_forward
該文件表示是否打開IP轉發。
0,禁止
1,轉發
缺省設置:0
該文件表示一個數據報的生存週期(Time To Live),即最多經過多少路由器。
缺省設置:64
增加該值會降低系統性能。
該文件表示在全局範圍內關閉路徑MTU探測功能。
缺省設置:0
該文件表示最小路徑MTU的大小。
缺省設置:552
該文件表示PMTU信息緩存多長時間(秒)。
缺省設置:600(秒)
該文件表示最小的MSS(Maximum Segment Size)大小,取決於第一跳的路由器MTU。
缺省設置:256(bytes)
1) /proc/sys/net/ipv4/ipfrag_low_thresh/proc/sys/net/ipv4/ipfrag_low_thresh
兩個文件分別表示用於重組IP分段的內存分配最低值和最高值,一旦達到最高內存分配值,其它分段將被丟棄,直到達到最低內存分配值。
缺省設置:196608(ipfrag_low_thresh)
262144(ipfrag_high_thresh)
該文件表示一個IP分段在內存中保留多少秒。
缺省設置:30(秒)
1) /proc/sys/net/ipv4/inet_peer_threshold
INET對端存儲器某個合適值,當超過該閥值條目將被丟棄。該閥值同樣決定生存
時間以及廢物收集通過的時間間隔。條目越多,存活期越低,GC 間隔越短。
缺省設置:65664
條目的最低存活期。在重組端必須要有足夠的碎片(fragment)存活期。這個最低
存活期必須保證緩衝池容積是否少於 inet_peer_threshold。該值以 jiffies爲
單位測量。
缺省設置:120
條目的最大存活期。在此期限到達之後,如果緩衝池沒有耗盡壓力的話(例如:緩
衝池中的條目數目非常少),不使用的條目將會超時。該值以 jiffies爲單位測量。
缺省設置:600
廢物收集(GC)通過的最短間隔。這個間隔會影響到緩衝池中內存的高壓力。 該值
以 jiffies爲單位測量。
缺省設置:10