1. 程式人生 > >linux核心優化,核心引數詳解

linux核心優化,核心引數詳解

轉自百度文庫,最後有一部分修改:

一、前言 本文件針對OOP8生產環境,具體優化策略需要根據實際情況進行調整;本文件將在以下幾個方面來闡述如何針對RedHat Enterprise Linux進行效能優化。 1)       Linux Proc檔案系統,通過對Proc檔案系統進行調整,達到效能優化的目的。 2)       Linux效能診斷工具,介紹如何使用Linux自帶的診斷工具進行效能診斷。 加粗斜體表示可以直接執行的命令。 下劃線表示檔案的內容。 二、/proc/sys/kernel/優化 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導致系統非正常重啟。 2)       proc/sys/kernel/msgmax 該檔案指定了從一個程序傳送到另一個程序的訊息的最大長度(bytes)。程序間的訊息傳遞是在核心的記憶體中進行的,不會交換到磁碟上,所以如果增加該值,則將增加作業系統所使用的記憶體數量。

預設設定:8192 3)       /proc/sys/kernel/msgmnb 該檔案指定一個訊息佇列的最大長度(bytes)。

預設設定:16384 4)       /proc/sys/kernel/msgmni 該檔案指定訊息佇列標識的最大數目,即系統範圍內最大多少個訊息佇列。

預設設定:16 5)       /proc/sys/kernel/panic 該檔案表示如果發生“核心嚴重錯誤(kernel panic)”,則核心在重新引導之前等待的時間(以秒為單位)。 零(0)秒,表示在發生核心嚴重錯誤時將禁止自動重新引導。

預設設定:0 6)       proc/sys/kernel/shmall 該檔案表示在任何給定時刻,系統上可以使用的共享記憶體的總量(bytes)。

預設設定:2097152 7)       /proc/sys/kernel/shmmax 該檔案表示核心所允許的最大共享記憶體段的大小(bytes)。

預設設定:33554432 建議設定:實體記憶體 * 50%

實際可用最大共享記憶體段大小=shmmax * 98%,其中大約2%用於共享記憶體結構。 可以通過設定shmmax,然後執行ipcs -l來驗證。 8)       /proc/sys/kernel/shmmni 該檔案表示用於整個系統的共享記憶體段的最大數目(個)。

預設設定:4096 9)       /proc/sys/kernel/threads-max 該檔案表示核心所能使用的執行緒的最大數目。

預設設定:2048 10) /proc/sys/kernel/sem 該檔案用於控制核心訊號量,訊號量是System VIPC用於程序間通訊的方法。

建議設定:250 32000 100 128 第一列,表示每個訊號集中的最大訊號量數目。 第二列,表示系統範圍內的最大訊號量總數目。 第三列,表示每個訊號發生時的最大系統運算元目。 第四列,表示系統範圍內的最大訊號集總數目。 所以,(第一列)*(第四列)=(第二列)

以上設定,可以通過執行ipcs -l來驗證。 11) 待續。。。 三、/proc/sys/vm/優化 1)       /proc/sys/vm/block_dump 該檔案表示是否開啟Block Debug模式,用於記錄所有的讀寫及Dirty Block寫回動作。

預設設定:0,禁用Block Debug模式 2)       /proc/sys/vm/dirty_background_ratio 該檔案表示髒資料到達系統整體記憶體的百分比,此時觸發pdflush程序把髒資料寫回磁碟。

預設設定:10 3)       /proc/sys/vm/dirty_expire_centisecs 該檔案表示如果髒資料在記憶體中駐留時間超過該值,pdflush程序在下一次將把這些資料寫回磁碟。

預設設定:3000(1/100秒) 4)       /proc/sys/vm/dirty_ratio 該檔案表示如果程序產生的髒資料到達系統整體記憶體的百分比,此時程序自行把髒資料寫回磁碟。

預設設定:40 5)       /proc/sys/vm/dirty_writeback_centisecs 該檔案表示pdflush程序週期性間隔多久把髒資料寫回磁碟。

預設設定:500(1/100秒) 6)       /proc/sys/vm/vfs_cache_pressure 該檔案表示核心回收用於directory和inode cache記憶體的傾向;預設值100表示核心將根據pagecache和swapcache,把directory和inode cache保持在一個合理的百分比;降低該值低於100,將導致核心傾向於保留directory和inode cache;增加該值超過100,將導致核心傾向於回收directory和inode cache。

預設設定:100 7)       /proc/sys/vm/min_free_kbytes 該檔案表示強制Linux VM最低保留多少空閒記憶體(Kbytes)。

預設設定:724(512M實體記憶體) 8)       /proc/sys/vm/nr_pdflush_threads 該檔案表示當前正在執行的pdflush程序數量,在I/O負載高的情況下,核心會自動增加更多的pdflush程序。

預設設定:2(只讀) 9)       /proc/sys/vm/overcommit_memory 該檔案指定了核心針對記憶體分配的策略,其值可以是0、1、2。 0, 表示核心將檢查是否有足夠的可用記憶體供應用程序使用;如果有足夠的可用記憶體,記憶體申請允許;否則,記憶體申請失敗,並把錯誤返回給應用程序。 1, 表示核心允許分配所有的實體記憶體,而不管當前的記憶體狀態如何。 2, 表示核心允許分配超過所有實體記憶體和交換空間總和的記憶體(參照overcommit_ratio)。

預設設定:0 10) /proc/sys/vm/overcommit_ratio 該檔案表示,如果overcommit_memory=2,可以過載記憶體的百分比,通過以下公式來計算系統整體可用記憶體。 系統可分配記憶體=交換空間+實體記憶體*overcommit_ratio/100

預設設定:50(%) 11) /proc/sys/vm/page-cluster 該檔案表示在寫一次到swap區的時候寫入的頁面數量,0表示1頁,1表示2頁,2表示4頁。

預設設定:3(2的3次方,8頁) 12) /proc/sys/vm/swapiness 該檔案表示系統進行交換行為的程度,數值(0-100)越高,越可能發生磁碟交換。

預設設定:60 13) legacy_va_layout 該檔案表示是否使用最新的32位共享記憶體mmap()系統呼叫,Linux支援的共享記憶體分配方式包括mmap(),Posix,System VIPC。 0, 使用最新32位mmap()系統呼叫。 1, 使用2.4核心提供的系統呼叫。

預設設定:0 14) nr_hugepages 該檔案表示系統保留的hugetlb頁數。 15) hugetlb_shm_group 該檔案表示允許使用hugetlb頁建立System VIPC共享記憶體段的系統組ID。 16) 待續。。。 四、/proc/sys/fs/優化 1)       /proc/sys/fs/file-max 該檔案指定了可以分配的檔案控制代碼的最大數目。如果使用者得到的錯誤訊息宣告由於開啟 檔案數已經達到了最大值,從而他們不能開啟更多檔案,則可能需要增加該值。

預設設定:4096 建議設定:65536 2)       /proc/sys/fs/file-nr 該檔案與 file-max 相關,它有三個值: 已分配檔案控制代碼的數目 已使用檔案控制代碼的數目 檔案控制代碼的最大數目 該檔案是隻讀的,僅用於顯示資訊。 3)       待續。。。 五、/proc/sys/net/core/優化 該目錄下的配置檔案主要用來控制核心和網路層之間的互動行為。 1) /proc/sys/net/core/message_burst 寫新的警告訊息所需的時間(以 1/10 秒為單位);在這個時間內系統接收到的其它警告訊息會被丟棄。這用於防止某些企圖用訊息“淹沒”系統的人所使用的拒絕服務(Denial of Service)攻擊。

預設設定:50(5秒) 2) /proc/sys/net/core/message_cost 該檔案表示寫每個警告訊息相關的成本值。該值越大,越有可能忽略警告訊息。

預設設定:5 3) /proc/sys/net/core/netdev_max_backlog 該檔案表示在每個網路介面接收資料包的速率比核心處理這些包的速率快時,允許送到佇列的資料包的最大數目。

預設設定:300 4) /proc/sys/net/core/optmem_max 該檔案表示每個套接字所允許的最大緩衝區的大小。

預設設定:10240 5) /proc/sys/net/core/rmem_default 該檔案指定了接收套接字緩衝區大小的預設值(以位元組為單位)。

預設設定:110592 6) /proc/sys/net/core/rmem_max 該檔案指定了接收套接字緩衝區大小的最大值(以位元組為單位)。

預設設定:131071 7) /proc/sys/net/core/wmem_default 該檔案指定了傳送套接字緩衝區大小的預設值(以位元組為單位)。

預設設定:110592 8) /proc/sys/net/core/wmem_max 該檔案指定了傳送套接字緩衝區大小的最大值(以位元組為單位)。

預設設定:131071 9) 待續。。。 六、/proc/sys/net/ipv4/優化 1)       /proc/sys/net/ipv4/ip_forward 該檔案表示是否開啟IP轉發。 0,禁止 1,轉發

預設設定:0 2)       /proc/sys/net/ipv4/ip_default_ttl 該檔案表示一個數據報的生存週期(Time To Live),即最多經過多少路由器。

預設設定:64 增加該值會降低系統性能。 3)       /proc/sys/net/ipv4/ip_no_pmtu_disc 該檔案表示在全域性範圍內關閉路徑MTU探測功能。

預設設定:0 4)       /proc/sys/net/ipv4/route/min_pmtu 該檔案表示最小路徑MTU的大小。

預設設定:552 5)       /proc/sys/net/ipv4/route/mtu_expires 該檔案表示PMTU資訊快取多長時間(秒)。

預設設定:600(秒) 6)       /proc/sys/net/ipv4/route/min_adv_mss 該檔案表示最小的MSS(Maximum Segment Size)大小,取決於第一跳的路由器MTU。

預設設定:256(bytes) 6.1 IP Fragmentation 1)       /proc/sys/net/ipv4/ipfrag_low_thresh/proc/sys/net/ipv4/ipfrag_low_thresh 兩個檔案分別表示用於重組IP分段的記憶體分配最低值和最高值,一旦達到最高記憶體分配值,其它分段將被丟棄,直到達到最低記憶體分配值。

預設設定:196608(ipfrag_low_thresh) 262144(ipfrag_high_thresh) 2)       /proc/sys/net/ipv4/ipfrag_time 該檔案表示一個IP分段在記憶體中保留多少秒。

預設設定:30(秒) 6.2 INET Peer Storage 1)       /proc/sys/net/ipv4/inet_peer_threshold INET對端儲存器某個合適值,當超過該閥值條目將被丟棄。該閥值同樣決定生存 時間以及廢物收集通過的時間間隔。條目越多,存活期越低,GC 間隔越短。

預設設定:65664 2)       /proc/sys/net/ipv4/inet_peer_minttl 條目的最低存活期。在重組端必須要有足夠的碎片(fragment)存活期。這個最低 存活期必須保證緩衝池容積是否少於 inet_peer_threshold。該值以 jiffies為 單位測量。

預設設定:120 3)       /proc/sys/net/ipv4/inet_peer_maxttl 條目的最大存活期。在此期限到達之後,如果緩衝池沒有耗盡壓力的話(例如:緩 衝池中的條目數目非常少),不使用的條目將會超時。該值以 jiffies為單位測量。

預設設定:600 4)       /proc/sys/net/ipv4/inet_peer_gc_mintime 廢物收集(GC)通過的最短間隔。這個間隔會影響到緩衝池中記憶體的高壓力。 該值 以 jiffies為單位測量。

預設設定:10 5)       /proc/sys/net/ipv4/inet_peer_gc_maxtime 廢物收集(GC)通過的最大間隔,這個間隔會影響到緩衝池中記憶體的低壓力。 該值 以 jiffies為單位測量。

預設設定:120 6.3 TCP Variables 1)       /proc/sys/net/ipv4/tcp_syn_retries 該檔案表示本機向外發起TCP SYN連線超時重傳的次數,不應該高於255;該值僅僅針對外出的連線,對於進來的連線由tcp_retries1控制。

預設設定:5 2)       /proc/sys/net/ipv4/tcp_keepalive_probes 該檔案表示丟棄TCP連線前,進行最大TCP保持連線偵測的次數。保持連線僅在 SO_KEEPALIVE套接字選項被開啟時才被髮送。

預設設定:9(次) 3)       /proc/sys/net/ipv4/tcp_keepalive_time 該檔案表示從不再傳送資料到向連線上傳送保持連線訊號之間所需的秒數。

預設設定:7200(2小時) 4)       /proc/sys/net/ipv4/tcp_keepalive_intvl 該檔案表示傳送TCP探測的頻率,乘以tcp_keepalive_probes表示斷開沒有相應的TCP連線的時間。

預設設定:75(秒) 5)       /proc/sys/net/ipv4/tcp_retries1 該檔案表示放棄迴應一個TCP連線請求前進行重傳的次數。

預設設定:3 6)       /proc/sys/net/ipv4/tcp_retries2 該檔案表示放棄在已經建立通訊狀態下的一個TCP資料包前進行重傳的次數。

預設設定:15 7)       /proc/sys/net/ipv4/tcp_orphan_retries 在近端丟棄TCP連線之前,要進行多少次重試。預設值是 7 個,相當於 50秒– 16分鐘,視 RTO 而定。如果您的系統是負載很大的web伺服器,那麼也許需 要降低該值,這類 sockets 可能會耗費大量的資源。另外參考 tcp_max_orphans。 8)       /proc/sys/net/ipv4/tcp_fin_timeout 對於本端斷開的socket連線,TCP保持在FIN-WAIT-2狀態的時間。對方可能 會斷開連線或一直不結束連線或不可預料的程序死亡。預設值為 60 秒。過去在 2.2版本的核心中是 180 秒。您可以設定該值,但需要注意,如果您的機器為負 載很重的web伺服器,您可能要冒記憶體被大量無效資料報填滿的風險, FIN-WAIT-2 sockets 的危險性低於 FIN-WAIT-1,因為它們最多隻吃 1.5K 的記憶體,但是它們存在時間更長。另外參考 tcp_max_orphans。

預設設定:60(秒) 9)       /proc/sys/net/ipv4/tcp_max_tw_buckets 系統在同時所處理的最大timewait sockets 數目。如果超過此數的話, time-wait socket 會被立即砍除並且顯示警告資訊。之所以要設定這個限制,純 粹為了抵禦那些簡單的 DoS 攻擊,千萬不要人為的降低這個限制,不過,如果 網路條件需要比預設值更多,則可以提高它(或許還要增加記憶體)。

預設設定:180000 10) /proc/sys/net/ipv4/tcp_tw_recyle 開啟快速 TIME-WAIT sockets 回收。除非得到技術專家的建議或要求,請不要隨 意修改這個值。

預設設定:0 11) /proc/sys/net/ipv4/tcp_tw_reuse 該檔案表示是否允許重新應用處於TIME-WAIT狀態的socket用於新的TCP連線。

預設設定:0 12) /proc/sys/net/ipv4/tcp_max_orphans 系統所能處理不屬於任何程序的TCP sockets最大數量。假如超過這個數量,那 麼不屬於任何程序的連線會被立即reset,並同時顯示警告資訊。之所以要設定這 個限制,純粹為了抵禦那些簡單的 DoS 攻擊,千萬不要依賴這個或是人為的降 低這個限制。

預設設定:8192 13) /proc/sys/net/ipv4/tcp_abort_on_overflow 當守護程序太忙而不能接受新的連線,就向對方傳送reset訊息,預設值是false。 這意味著當溢位的原因是因為一個偶然的猝發,那麼連線將恢復狀態。只有在你確 信守護程序真的不能完成連線請求時才打開該選項,該選項會影響客戶的使用。

預設設定:0 14) /proc/sys/net/ipv4/tcp_syncookies 該檔案表示是否開啟TCP同步標籤(syncookie),核心必須打開了 CONFIG_SYN_COOKIES項進行編譯。 同步標籤(syncookie)可以防止一個套接字在有過多試圖連線到達時引起過載。

預設設定:0 15) /proc/sys/net/ipv4/tcp_stdurg 使用 TCP urg pointer 欄位中的主機請求解釋功能。大部份的主機都使用老舊的 BSD解釋,因此如果您在 Linux 開啟它,或會導致不能和它們正確溝通。

預設設定:0 16) /proc/sys/net/ipv4/tcp_max_syn_backlog 對於那些依然還未獲得客戶端確認的連線請求,需要儲存在佇列中最大數目。對於 超過 128Mb 記憶體的系統,預設值是 1024,低於 128Mb 的則為 128。如果 伺服器經常出現過載,可以嘗試增加這個數字。警告!假如您將此值設為大於 1024,最好修改 include/net/tcp.h 裡面的 TCP_SYNQ_HSIZE,以保持 TCP_SYNQ_HSIZE*16 0)或者bytes-bytes/2^(-tcp_adv_win_scale)(如 果tcp_adv_win_scale 128Mb 32768-610000)則系統將忽略所有傳送給自己 的ICMP ECHO請求或那些廣播地址的請求。

預設設定:1024 17) /proc/sys/net/ipv4/tcp_window_scaling 該檔案表示設定tcp/ip會話的滑動視窗大小是否可變。引數值為布林值,為1時表示可變,為0時表示不可變。tcp/ip通常使用的視窗最大可達到65535 位元組,對於高速網路,該值可能太小,這時候如果啟用了該功能,可以使tcp/ip滑動視窗大小增大數個數量級,從而提高資料傳輸的能力。

預設設定:1 18) /proc/sys/net/ipv4/tcp_sack 該檔案表示是否啟用有選擇的應答(Selective Acknowledgment),這可以通過有選擇地應答亂序接收到的報文來提高效能(這樣可以讓傳送者只發送丟失的報文段);(對於廣域網通訊來說)這個選項應該啟用,但是這會增加對 CPU 的佔用。

預設設定:1 19) /proc/sys/net/ipv4/tcp_timestamps 該檔案表示是否啟用以一種比超時重發更精確的方法(請參閱 RFC 1323)來啟用對 RTT 的計算;為了實現更好的效能應該啟用這個選項。

預設設定:1 20) /proc/sys/net/ipv4/tcp_fack 該檔案表示是否開啟FACK擁塞避免和快速重傳功能。

預設設定:1 21) /proc/sys/net/ipv4/tcp_dsack 該檔案表示是否允許TCP傳送“兩個完全相同”的SACK。

預設設定:1 22) /proc/sys/net/ipv4/tcp_ecn 該檔案表示是否開啟TCP的直接擁塞通告功能。

預設設定:0 23) /proc/sys/net/ipv4/tcp_reordering 該檔案表示TCP流中重排序的資料報最大數量。

預設設定:3 24) /proc/sys/net/ipv4/tcp_retrans_collapse 該檔案表示對於某些有bug的印表機是否提供針對其bug的相容性。

預設設定:1 25) /proc/sys/net/ipv4/tcp_wmem 該檔案包含3個整數值,分別是:min,default,max Min:為TCP socket預留用於傳送緩衝的記憶體最小值。每個TCP socket都可以使用它。 Default:為TCP socket預留用於傳送緩衝的記憶體數量,預設情況下該值會影響其它協議使用的net.core.wmem中default的 值,一般要低於net.core.wmem中default的值。 Max:為TCP socket預留用於傳送緩衝的記憶體最大值。該值不會影響net.core.wmem_max,今天選擇引數SO_SNDBUF則不受該值影響。預設值為128K。

預設設定:4096 16384 131072 26) /proc/sys/net/ipv4/tcp_rmem 該檔案包含3個整數值,分別是:min,default,max Min:為TCP socket預留用於接收緩衝的記憶體數量,即使在記憶體出現緊張情況下TCP socket都至少會有這麼多數量的記憶體用於接收緩衝。 Default:為TCP socket預留用於接收緩衝的記憶體數量,預設情況下該值影響其它協議使用的 net.core.wmem中default的 值。該值決定了在tcp_adv_win_scale、tcp_app_win和tcp_app_win的預設值情況下,TCP 視窗大小為65535。 Max:為TCP socket預留用於接收緩衝的記憶體最大值。該值不會影響 net.core.wmem中max的值,今天選擇引數 SO_SNDBUF則不受該值影響。

預設設定:4096 87380 174760 27) /proc/sys/net/ipv4/tcp_mem 該檔案包含3個整數值,分別是:low,pressure,high Low:當TCP使用了低於該值的記憶體頁面數時,TCP不會考慮釋放記憶體。 Pressure:當TCP使用了超過該值的記憶體頁面數量時,TCP試圖穩定其記憶體使用,進入pressure模式,當記憶體消耗低於low值時則退出pressure狀態。 High:允許所有tcp sockets用於排隊緩衝資料報的頁面量。 一般情況下這些值是在系統啟動時根據系統記憶體數量計算得到的。

預設設定:24576 32768 49152 28) /proc/sys/net/ipv4/tcp_app_win 該檔案表示保留max(window/2^tcp_app_win, mss)數量的視窗由於應用緩衝。當為0時表示不需要緩衝。

預設設定:31 29) /proc/sys/net/ipv4/tcp_adv_win_scale 該檔案表示計算緩衝開銷bytes/2^tcp_adv_win_scale(如果tcp_adv_win_scale >; 0)或者bytes-bytes/2^(-tcp_adv_win_scale)(如果tcp_adv_win_scale <= 0)。

預設設定:2 6.4 IP Variables 1)       /proc/sys/net/ipv4/ip_local_port_range 該檔案表示TCP/UDP協議開啟的本地埠號。

預設設定:1024 4999 建議設定:32768 61000 2)       /proc/sys/net/ipv4/ip_nonlocal_bind 該檔案表示是否允許程序邦定到非本地地址。

預設設定:0 3)       /proc/sys/net/ipv4/ip_dynaddr 該引數通常用於使用撥號連線的情況,可以使系統動能夠立即改變ip包的源地址為該ip地址,同時中斷原有的tcp對話而用新地址重新發出一個syn請求包,開始新的tcp對話。在使用ip欺騙時,該引數可以立即改變偽裝地址為新的ip地址。該檔案表示是否允許動態地址,如果該值非0,表示允許;如果該值大於1,核心將通過log記錄動態地址重寫資訊。

預設設定:0 4)       /proc/sys/net/ipv4/icmp_echo_ignore_all/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts 該檔案表示核心是否忽略所有的ICMP ECHO請求,或忽略廣播和多播請求。 0, 響應請求 1, 忽略請求

預設設定:0 建議設定:1 5)       /proc/sys/net/ipv4/icmp_ratelimit 6)       /proc/sys/net/ipv4/icmp_ratemask 7)       /proc/sys/net/ipv4/icmp_ignore_bogus_error_reponses 某些路由器違背RFC1122標準,其對廣播幀傳送偽造的響應來應答。這種違背行 為通常會被以告警的方式記錄在系統日誌中。如果該選項設定為True,核心不會 記錄這種警告資訊。

預設設定:0 8)       /proc/sys/net/ipv4/igmp_max_memberships 該檔案表示多播組中的最大成員數量。

預設設定:20 6.5 Other Configuration 1)       /proc/sys/net/ipv4/conf/*/accept_redirects 如果主機所在的網段中有兩個路由器,你將其中一個設定成了預設閘道器,但是該閘道器 在收到你的ip包時發現該ip包必須經過另外一個路由器,這時這個路由器就會給你 發一個所謂的“重定向”icmp包,告訴將ip包轉發到另外一個路由器。引數值為布林 值,1表示接收這類重定向icmp 資訊,0表示忽略。在充當路由器的linux主機上缺 省值為0,在一般的linux主機上預設值為1。建議將其改為0以消除安全性隱患。 2)       /proc/sys/net/ipv4/*/accept_source_route 是否接受含有源路由資訊的ip包。引數值為布林值,1表示接受,0表示不接受。在 充當閘道器的linux主機上預設值為1,在一般的linux主機上預設值為0。從安全性角 度出發,建議關閉該功能。 3)       /proc/sys/net/ipv4/*/secure_redirects 其實所謂的“安全重定向”就是隻接受來自閘道器的“重定向”icmp包。該引數就是 用來設定“安全重定向”功能的。引數值為布林值,1表示啟用,0表示禁止,預設值 為啟用。 4)       /proc/sys/net/ipv4/*/proxy_arp 設定是否對網路上的arp包進行中繼。引數值為布林值,1表示中繼,0表示忽略, 預設值為0。該引數通常只對充當路由器的linux主機有用。 七、效能優化策略 7.1 基本優化 1)       關閉後臺守護程序 系統安裝完後,系統會預設啟動一些後臺守護程序,有些程序並不是必需的;因此,關閉這些程序可以節省一部分實體記憶體消耗。以root身份登入系統,執行ntsysv,選中如下程序: iptables network syslog random apmd xinetd vsftpd crond local 修改完後,重新啟動系統。 如此,系統將僅僅啟動選中的這些守護程序。 2)       減少終端連線數 系統預設啟動6個終端,而實際上只需啟動3個即可;以root身份登入系統,執行vi /etc/inittab,修改成如下: # Run gettys in standard runlevels 1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 #4:2345:respawn:/sbin/mingetty tty4 #5:2345:respawn:/sbin/mingetty tty5 #6:2345:respawn:/sbin/mingetty tty6 如上所述,註釋掉4、5、6終端。 3)       待續。。。 7.2 網路優化 1)       優化系統套接字緩衝區 net.core.rmem_max=16777216 net.core.wmem_max=16777216 2)       優化TCP接收/傳送緩衝區 net.ipv4.tcp_rmem=4096 87380 16777216 net.ipv4.tcp_wmem=4096 65536 16777216 3)       優化網路裝置接收佇列 net.core.netdev_max_backlog=3000 4)       關閉路由相關功能 net.ipv4.conf.lo.accept_source_route=0 net.ipv4.conf.all.accept_source_route=0 net.ipv4.conf.eth0.accept_source_route=0 net.ipv4.conf.default.accept_source_route=0

net.ipv4.conf.lo.accept_redirects=0 net.ipv4.conf.all.accept_redirects=0 net.ipv4.conf.eth0.accept_redirects=0 net.ipv4.conf.default.accept_redirects=0

net.ipv4.conf.lo.secure_redirects=0 net.ipv4.conf.all.secure_redirects=0 net.ipv4.conf.eth0.secure_redirects=0 net.ipv4.conf.default.secure_redirects=0

net.ipv4.conf.lo.send_redirects=0 net.ipv4.conf.all.send_redirects=0 net.ipv4.conf.eth0.send_redirects=0 net.ipv4.conf.default.send_redirects=0 5)       優化TCP協議棧 開啟TCP SYN cookie選項,有助於保護伺服器免受SyncFlood攻擊。 net.ipv4.tcp_syncookies=1

開啟TIME-WAIT套接字重用功能,對於存在大量連線的Web伺服器非常有效。 net.ipv4.tcp_tw_recyle=1 net.ipv4.tcp_tw_reuse=1

減少處於FIN-WAIT-2連線狀態的時間,使系統可以處理更多的連線。 net.ipv4.tcp_fin_timeout=30

減少TCP KeepAlive連線偵測的時間,使系統可以處理更多的連線。 net.ipv4.tcp_keepalive_time=1800

增加TCP SYN佇列長度,使系統可以處理更多的併發連線。 net.ipv4.tcp_max_syn_backlog=8192