一、前言
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)秒,表示在發生核心嚴重錯誤時将禁止自動重新開機。
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)。
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核心提供的系統調用。
14) nr_hugepages
該檔案表示系統保留的hugetlb頁數。
15) hugetlb_shm_group
該檔案表示允許使用hugetlb頁建立System VIPC共享記憶體段的系統組ID。
16) 待續。。。
四、/proc/sys/fs/優化
1) /proc/sys/fs/file-max
該檔案指定了可以配置設定的檔案句柄的最大數目。如果使用者得到的錯誤消息聲明由于打開
檔案數已經達到了最大值,進而他們不能打開更多檔案,則可能需要增加該值。
建議設定: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
該檔案指定了發送套接字緩沖區大小的預設值(以位元組為機關)。
8) /proc/sys/net/core/wmem_max
該檔案指定了發送套接字緩沖區大小的最大值(以位元組為機關)。
9) 待續。。。
六、/proc/sys/net/ipv4/優化
1) /proc/sys/net/ipv4/ip_forward
該檔案表示是否打開IP轉發。
0,禁止
1,轉發
2) /proc/sys/net/ipv4/ip_default_ttl
該檔案表示一個資料報的生存周期(Time To Live),即最多經過多少路由器。
預設設定:64
增加該值會降低系統性能。
3) /proc/sys/net/ipv4/ip_no_pmtu_disc
該檔案表示在全局範圍内關閉路徑MTU探測功能。
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為機關測量。
5) /proc/sys/net/ipv4/inet_peer_gc_maxtime
廢物收集(GC)通過的最大間隔,這個間隔會影響到緩沖池中記憶體的低壓力。 該值
6.3 TCP Variables
1) /proc/sys/net/ipv4/tcp_syn_retries
該檔案表示本機向外發起TCP SYN連接配接逾時重傳的次數,不應該高于255;該值僅僅針對外出的連接配接,對于進來的連接配接由tcp_retries1控制。
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 回收。除非得到技術專家的建議或要求,請不要随
意修改這個值。
11) /proc/sys/net/ipv4/tcp_tw_reuse
該檔案表示是否允許重新應用處于TIME-WAIT狀态的socket用于新的TCP連接配接。
12) /proc/sys/net/ipv4/tcp_max_orphans
系統所能處理不屬于任何程序的TCP sockets最大數量。假如超過這個數量,那
麼不屬于任何程序的連接配接會被立即reset,并同時顯示警告資訊。之是以要設定這
個限制,純粹為了抵禦那些簡單的 DoS 攻擊,千萬不要依賴這個或是人為的降
低這個限制。
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)可以防止一個套接字在有過多試圖連接配接到達時引起過載。
15) /proc/sys/net/ipv4/tcp_stdurg
使用 TCP urg pointer 字段中的主機請求解釋功能。大部份的主機都使用老舊的
BSD解釋,是以如果您在 Linux 打開它,或會導緻不能和它們正确溝通。
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 的占用。
19) /proc/sys/net/ipv4/tcp_timestamps
該檔案表示是否啟用以一種比逾時重發更精确的方法(請參閱 RFC 1323)來啟用對 RTT 的計算;為了實作更好的性能應該啟用這個選項。
20) /proc/sys/net/ipv4/tcp_fack
該檔案表示是否打開FACK擁塞避免和快速重傳功能。
21) /proc/sys/net/ipv4/tcp_dsack
該檔案表示是否允許TCP發送“兩個完全相同”的SACK。
22) /proc/sys/net/ipv4/tcp_ecn
該檔案表示是否打開TCP的直接擁塞通告功能。
23) /proc/sys/net/ipv4/tcp_reordering
該檔案表示TCP流中重排序的資料報最大數量。
24) /proc/sys/net/ipv4/tcp_retrans_collapse
該檔案表示對于某些有bug的列印機是否提供針對其bug的相容性。
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
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
該檔案表示是否允許程序邦定到非本地位址。
3) /proc/sys/net/ipv4/ip_dynaddr
該 參數通常用于使用撥接上網的情況,可以使系統動能夠立即改變ip包的源位址為該ip位址,同時中斷原有的tcp對話而用新位址重新發出一個syn請求包, 開始新的tcp對話。在使用ip欺騙時,該參數可以立即改變僞裝位址為新的ip位址。該檔案表示是否允許動态位址,如果該值非0,表示允許;如果該值大于 1,核心将通過log記錄動态位址重寫資訊。
4) /proc/sys/net/ipv4/icmp_echo_ignore_all/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
該檔案表示核心是否忽略所有的ICMP ECHO請求,或忽略廣播和多點傳播請求。
0, 響應請求
1, 忽略請求
建議設定: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,核心不會
記錄這種警告資訊。
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終端。
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_recycle=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