#sudo vi /etc/sysctl.conf
$ /proc/sys/net/core/wmem_max
該文件指定了發(fā)送套接字緩沖區(qū)大小的最大值(以字節(jié)為單位),可參考的優(yōu)化值:873200
$ /proc/sys/net/core/rmem_max
該文件指定了接收套接字緩沖區(qū)大小的最大值(以字節(jié)為單位),可參考的優(yōu)化值:873200
$ /proc/sys/net/core/netdev_max_backlog
進(jìn)入包的最大設(shè)備隊(duì)列.默認(rèn)是1000,對(duì)重負(fù)載服務(wù)器而言,該值太低,可調(diào)整到16384.
$ /proc/sys/net/core/somaxconn
listen()的默認(rèn)參數(shù),掛起請(qǐng)求的最大數(shù)量.默認(rèn)是128.對(duì)繁忙的服務(wù)器,增加該值有助于網(wǎng)絡(luò)性能.可調(diào)整到8192.
$ /proc/sys/net/core/optmem_max
socket buffer的最大初始化值,默認(rèn)10K(10240).也可調(diào)整到20k(20480).但建議保留不變
$ /proc/sys/net/ipv4/tcp_max_syn_backlog
進(jìn)入SYN包的最大請(qǐng)求隊(duì)列.默認(rèn)1024.對(duì)重負(fù)載服務(wù)器,增加該值顯然有好處.可調(diào)整到16384.
$ /proc/sys/net/ipv4/tcp_retries2
TCP失敗重傳次數(shù),默認(rèn)值15,意味著重傳15次才徹底放棄.可減少到5,以盡早釋放內(nèi)核資源.
$ /proc/sys/net/ipv4/tcp_keepalive_time
$ /proc/sys/net/ipv4/tcp_keepalive_intvl $ /proc/sys/net/ipv4/tcp_keepalive_probes 這3個(gè)參數(shù)與TCP KeepAlive有關(guān).默認(rèn)值是:
tcp_keepalive_time = 7200 seconds (2 hours)
tcp_keepalive_probes = 9 tcp_keepalive_intvl = 75 seconds
意思是如果某個(gè)TCP連接在idle 2個(gè)小時(shí)后,內(nèi)核才發(fā)起probe.如果probe 9次(每次75秒)不成功,內(nèi)核才徹底放棄,認(rèn)為該連接已失效.對(duì)服務(wù)器而言,顯然上述值太大. 可調(diào)整到:
/proc/sys/net/ipv4/tcp_keepalive_time 1800
/proc/sys/net/ipv4/tcp_keepalive_probes 3 /proc/sys/net/ipv4/tcp_keepalive_intvl 30
$ proc/sys/net/ipv4/ip_local_port_range
指定端口范圍的一個(gè)配置,默認(rèn)是32768 61000.可調(diào)整為1024 65535.
net.ipv4.tcp_syncookies = 1
表示開啟SYN Cookies。當(dāng)出現(xiàn)SYN等待隊(duì)列溢出時(shí),啟用cookies來(lái)處理,可防范少量SYN攻擊,默認(rèn)為0,表示關(guān)閉。
net.ipv4.tcp_tw_reuse = 1
表示開啟重用。允許將TIME-WAIT sockets重新用于新的TCP連接,默認(rèn)為0,表示關(guān)閉。
net.ipv4.tcp_tw_recycle = 1
表示開啟TCP連接中TIME-WAIT sockets的快速回收,默認(rèn)為0,表示關(guān)閉。
?。?!開啟快速回收后,可以很大程度的減少TIME_WAIT狀態(tài),及時(shí)回收資源,之前我發(fā)過一篇文章,這里會(huì)導(dǎo)致app移動(dòng)設(shè)備無(wú)法同時(shí)訪問網(wǎng)站,這個(gè)問題應(yīng)該是曾經(jīng)阿里云的bug,目前應(yīng)該是修復(fù)了。
net.ipv4.tcp_fin_timeout = 30
表示如果套接字由本端要求關(guān)閉,這個(gè)參數(shù)決定了它保持在FIN-WAIT-2狀態(tài)的時(shí)間。
net.ipv4.tcp_keepalive_time = 1200
表示當(dāng)keepalive起用的時(shí)候,TCP發(fā)送keepalive消息的頻度。缺省是2小時(shí),改為20分鐘。
net.ipv4.ip_local_port_range = 1024 65535
表示用于向外連接的端口范圍。缺省情況下過窄:32768到61000,改為1024到65535。
net.ipv4.tcp_max_syn_backlog = 16384
表示SYN隊(duì)列的長(zhǎng)度,默認(rèn)為1024,加大隊(duì)列長(zhǎng)度為8192,可以容納更多等待連接的網(wǎng)絡(luò)連接數(shù)。
net.ipv4.tcp_max_tw_buckets = 1000
表示系統(tǒng)同時(shí)保持TIME_WAIT套接字的最大數(shù)量,如果超過這個(gè)數(shù)字,TIME_WAIT套接字將立刻被清除并打印警告信息。默認(rèn)為180000,建議減小,避免TIME_WAIT狀態(tài)過多消耗整個(gè)服務(wù)器的資源,但也不能太小,跟你后端的處理速度有關(guān),如果速度快可以小,速度慢則適當(dāng)加大,否則高負(fù)載會(huì)有請(qǐng)求無(wú)法響應(yīng)或非常慢。
#缺省socket寫buffer,可參考的優(yōu)化值:873200/1746400/3492800 Proc 系統(tǒng)優(yōu)化
http://www.cnblogs.com/happyhotty/articles/2044049.html 轉(zhuǎn)載自:http://www./Linux/2007-08/6995.htm
一、前言
1) /proc/sys/kernel/ctrl-alt-del
該文件有一個(gè)二進(jìn)制值,該值控制系統(tǒng)在接收到ctrl+alt+delete按鍵組合時(shí)如何反應(yīng)。這兩個(gè)值分別是:
零(0)值,表示捕獲ctrl+alt+delete,并將其送至 init 程序;這將允許系統(tǒng)可以安全地關(guān)閉和重啟,就好象輸入shutdown命令一樣。 壹(1)值,表示不捕獲ctrl+alt+delete,將執(zhí)行非正常的關(guān)閉,就好象直接關(guān)閉電源一樣。 缺省設(shè)置:0 建議設(shè)置:1,防止意外按下ctrl+alt+delete導(dǎo)致系統(tǒng)非正常重啟。 2) proc/sys/kernel/msgmax 該文件指定了從一個(gè)進(jìn)程發(fā)送到另一個(gè)進(jìn)程的消息的最大長(zhǎng)度(bytes)。進(jìn)程間的消息傳遞是在內(nèi)核的內(nèi)存中進(jìn)行的,不會(huì)交換到磁盤上,所以如果增加該值,則將增加操作系統(tǒng)所使用的內(nèi)存數(shù)量。 缺省設(shè)置:8192 3) /proc/sys/kernel/msgmnb 該文件指定一個(gè)消息隊(duì)列的最大長(zhǎng)度(bytes)。 缺省設(shè)置:16384 4) /proc/sys/kernel/msgmni 該文件指定消息隊(duì)列標(biāo)識(shí)的最大數(shù)目,即系統(tǒng)范圍內(nèi)最大多少個(gè)消息隊(duì)列。 缺省設(shè)置:16 5) /proc/sys/kernel/panic 該文件表示如果發(fā)生“內(nèi)核嚴(yán)重錯(cuò)誤(kernel panic)”,則內(nèi)核在重新引導(dǎo)之前等待的時(shí)間(以秒為單位)。 零(0)秒,表示在發(fā)生內(nèi)核嚴(yán)重錯(cuò)誤時(shí)將禁止自動(dòng)重新引導(dǎo)。 缺省設(shè)置:0 6) proc/sys/kernel/shmall 該文件表示在任何給定時(shí)刻,系統(tǒng)上可以使用的共享內(nèi)存的總量(bytes)。 缺省設(shè)置:2097152 7) /proc/sys/kernel/shmmax 該文件表示內(nèi)核所允許的最大共享內(nèi)存段的大小(bytes)。 缺省設(shè)置:33554432 建議設(shè)置:物理內(nèi)存 * 50% 實(shí)際可用最大共享內(nèi)存段大小=shmmax * 98%,其中大約2%用于共享內(nèi)存結(jié)構(gòu)。 可以通過設(shè)置shmmax,然后執(zhí)行ipcs -l來(lái)驗(yàn)證。 8) /proc/sys/kernel/shmmni 該文件表示用于整個(gè)系統(tǒng)的共享內(nèi)存段的最大數(shù)目(個(gè))。 缺省設(shè)置:4096 9) /proc/sys/kernel/threads-max 該文件表示內(nèi)核所能使用的線程的最大數(shù)目。 缺省設(shè)置:2048 10) /proc/sys/kernel/sem 該文件用于控制內(nèi)核信號(hào)量,信號(hào)量是System VIPC用于進(jìn)程間通訊的方法。 建議設(shè)置:250 32000 100 128 第一列,表示每個(gè)信號(hào)集中的最大信號(hào)量數(shù)目。 第二列,表示系統(tǒng)范圍內(nèi)的最大信號(hào)量總數(shù)目。 第三列,表示每個(gè)信號(hào)發(fā)生時(shí)的最大系統(tǒng)操作數(shù)目。 第四列,表示系統(tǒng)范圍內(nèi)的最大信號(hào)集總數(shù)目。 所以,(第一列)*(第四列)=(第二列) 以上設(shè)置,可以通過執(zhí)行ipcs -l來(lái)驗(yàn)證。
11) 待續(xù)。。。
三、/proc/sys/vm/優(yōu)化 1) /proc/sys/vm/block_dump 該文件表示是否打開Block Debug模式,用于記錄所有的讀寫及Dirty Block寫回動(dòng)作。 缺省設(shè)置:0,禁用Block Debug模式 2) /proc/sys/vm/dirty_background_ratio 該文件表示臟數(shù)據(jù)到達(dá)系統(tǒng)整體內(nèi)存的百分比,此時(shí)觸發(fā)pdflush進(jìn)程把臟數(shù)據(jù)寫回磁盤。 缺省設(shè)置:10 3) /proc/sys/vm/dirty_expire_centisecs 該文件表示如果臟數(shù)據(jù)在內(nèi)存中駐留時(shí)間超過該值,pdflush進(jìn)程在下一次將把這些數(shù)據(jù)寫回磁盤。 缺省設(shè)置:3000(1/100秒)
4) /proc/sys/vm/dirty_ratio
該文件表示如果進(jìn)程產(chǎn)生的臟數(shù)據(jù)到達(dá)系統(tǒng)整體內(nèi)存的百分比,此時(shí)進(jìn)程自行把臟數(shù)據(jù)寫回磁盤。 缺省設(shè)置:40 5) /proc/sys/vm/dirty_writeback_centisecs 該文件表示pdflush進(jìn)程周期性間隔多久把臟數(shù)據(jù)寫回磁盤。 缺省設(shè)置:500(1/100秒)
6) /proc/sys/vm/vfs_cache_pressure
該文件表示內(nèi)核回收用于directory和inode cache內(nèi)存的傾向;缺省值100表示內(nèi)核將根據(jù)pagecache和swapcache,把directory和inode cache保持在一個(gè)合理的百分比;降低該值低于100,將導(dǎo)致內(nèi)核傾向于保留directory和inode cache;增加該值超過100,將導(dǎo)致內(nèi)核傾向于回收directory和inode cache。 缺省設(shè)置:100 7) /proc/sys/vm/min_free_kbytes 該文件表示強(qiáng)制Linux VM最低保留多少空閑內(nèi)存(Kbytes)。 缺省設(shè)置:724(512M物理內(nèi)存) 8) /proc/sys/vm/nr_pdflush_threads 該文件表示當(dāng)前正在運(yùn)行的pdflush進(jìn)程數(shù)量,在I/O負(fù)載高的情況下,內(nèi)核會(huì)自動(dòng)增加更多的pdflush進(jìn)程。 缺省設(shè)置:2(只讀) 9) /proc/sys/vm/overcommit_memory 該文件指定了內(nèi)核針對(duì)內(nèi)存分配的策略,其值可以是0、1、2。 0, 表示內(nèi)核將檢查是否有足夠的可用內(nèi)存供應(yīng)用進(jìn)程使用;如果有足夠的可用內(nèi)存,內(nèi)存申請(qǐng)?jiān)试S;否則,內(nèi)存申請(qǐng)失敗,并把錯(cuò)誤返回給應(yīng)用進(jìn)程。 1, 表示內(nèi)核允許分配所有的物理內(nèi)存,而不管當(dāng)前的內(nèi)存狀態(tài)如何。 2, 表示內(nèi)核允許分配超過所有物理內(nèi)存和交換空間總和的內(nèi)存(參照overcommit_ratio)。 缺省設(shè)置:0 10) /proc/sys/vm/overcommit_ratio 該文件表示,如果overcommit_memory=2,可以過載內(nèi)存的百分比,通過以下公式來(lái)計(jì)算系統(tǒng)整體可用內(nèi)存。 系統(tǒng)可分配內(nèi)存=交換空間+物理內(nèi)存*overcommit_ratio/100 缺省設(shè)置:50(%) 11) /proc/sys/vm/page-cluster 該文件表示在寫一次到swap區(qū)的時(shí)候?qū)懭氲捻?yè)面數(shù)量,0表示1頁(yè),1表示2頁(yè),2表示4頁(yè)。 缺省設(shè)置:3(2的3次方,8頁(yè)) 12) /proc/sys/vm/swapiness 該文件表示系統(tǒng)進(jìn)行交換行為的程度,數(shù)值(0-100)越高,越可能發(fā)生磁盤交換。 缺省設(shè)置:60 13) legacy_va_layout 該文件表示是否使用最新的32位共享內(nèi)存mmap()系統(tǒng)調(diào)用,Linux支持的共享內(nèi)存分配方式包括mmap(),Posix,System VIPC。 0, 使用最新32位mmap()系統(tǒng)調(diào)用。 1, 使用2.4內(nèi)核提供的系統(tǒng)調(diào)用。 缺省設(shè)置:0 14) nr_hugepages 該文件表示系統(tǒng)保留的hugetlb頁(yè)數(shù)。 15) hugetlb_shm_group 該文件表示允許使用hugetlb頁(yè)創(chuàng)建System VIPC共享內(nèi)存段的系統(tǒng)組ID。
16) 待續(xù)。。。
四、/proc/sys/fs/優(yōu)化 1) /proc/sys/fs/file-max 該文件指定了可以分配的文件句柄的最大數(shù)目。如果用戶得到的錯(cuò)誤消息聲明由于打開文件數(shù)已經(jīng)達(dá)到了最大值,從而他們不能打開更多文件,則可能需要增加該值。 缺省設(shè)置:4096 建議設(shè)置:65536 2) /proc/sys/fs/file-nr 該文件與 file-max 相關(guān),它有三個(gè)值: 已分配文件句柄的數(shù)目 已使用文件句柄的數(shù)目 文件句柄的最大數(shù)目 該文件是只讀的,僅用于顯示信息。 3) 待續(xù)。。。 五、/proc/sys/net/core/優(yōu)化 該目錄下的配置文件主要用來(lái)控制內(nèi)核和網(wǎng)絡(luò)層之間的交互行為。 1) /proc/sys/net/core/message_burst 寫新的警告消息所需的時(shí)間(以 1/10 秒為單位);在這個(gè)時(shí)間內(nèi)系統(tǒng)接收到的其它警告消息會(huì)被丟棄。這用于防止某些企圖用消息“淹沒”系統(tǒng)的人所使用的拒絕服務(wù)(Denial of Service)攻擊。 缺省設(shè)置:50(5秒)
2) /proc/sys/net/core/message_cost
該文件表示寫每個(gè)警告消息相關(guān)的成本值。該值越大,越有可能忽略警告消息。 缺省設(shè)置:5 3) /proc/sys/net/core/netdev_max_backlog 該文件表示在每個(gè)網(wǎng)絡(luò)接口接收數(shù)據(jù)包的速率比內(nèi)核處理這些包的速率快時(shí),允許送到隊(duì)列的數(shù)據(jù)包的最大數(shù)目。 缺省設(shè)置:300 4) /proc/sys/net/core/optmem_max 該文件表示每個(gè)套接字所允許的最大緩沖區(qū)的大小。 缺省設(shè)置:10240 5) /proc/sys/net/core/rmem_default 該文件指定了接收套接字緩沖區(qū)大小的缺省值(以字節(jié)為單位)。 缺省設(shè)置:110592 6) /proc/sys/net/core/rmem_max 該文件指定了接收套接字緩沖區(qū)大小的最大值(以字節(jié)為單位)。
缺省設(shè)置:131071
7) /proc/sys/net/core/wmem_default
該文件指定了發(fā)送套接字緩沖區(qū)大小的缺省值(以字節(jié)為單位)。 缺省設(shè)置:110592 8) /proc/sys/net/core/wmem_max 該文件指定了發(fā)送套接字緩沖區(qū)大小的最大值(以字節(jié)為單位)。 缺省設(shè)置:131071 9) 待續(xù)。。。 六、/proc/sys/net/ipv4/優(yōu)化 1) /proc/sys/net/ipv4/ip_forward 該文件表示是否打開IP轉(zhuǎn)發(fā)。 0,禁止 1,轉(zhuǎn)發(fā) 缺省設(shè)置:0 2) /proc/sys/net/ipv4/ip_default_ttl 該文件表示一個(gè)數(shù)據(jù)報(bào)的生存周期(Time To Live),即最多經(jīng)過多少路由器。 缺省設(shè)置:64 增加該值會(huì)降低系統(tǒng)性能。
3) /proc/sys/net/ipv4/ip_no_pmtu_disc
該文件表示在全局范圍內(nèi)關(guān)閉路徑MTU探測(cè)功能。 缺省設(shè)置:0 4) /proc/sys/net/ipv4/route/min_pmtu 該文件表示最小路徑MTU的大小。 缺省設(shè)置:552 5) /proc/sys/net/ipv4/route/mtu_expires 該文件表示PMTU信息緩存多長(zhǎng)時(shí)間(秒)。 缺省設(shè)置:600(秒) 6) /proc/sys/net/ipv4/route/min_adv_mss 該文件表示最小的MSS(Maximum Segment Size)大小,取決于第一跳的路由器MTU。 缺省設(shè)置:256(bytes) 6.1 IP Fragmentation 1) /proc/sys/net/ipv4/ipfrag_low_thresh/proc/sys/net/ipv4/ipfrag_low_thresh 兩個(gè)文件分別表示用于重組IP分段的內(nèi)存分配最低值和最高值,一旦達(dá)到最高內(nèi)存分配值,其它分段將被丟棄,直到達(dá)到最低內(nèi)存分配值。 缺省設(shè)置:196608(ipfrag_low_thresh) 262144(ipfrag_high_thresh) 2) /proc/sys/net/ipv4/ipfrag_time 該文件表示一個(gè)IP分段在內(nèi)存中保留多少秒。 缺省設(shè)置:30(秒) 6.2 INET Peer Storage 1) /proc/sys/net/ipv4/inet_peer_threshold INET對(duì)端存儲(chǔ)器某個(gè)合適值,當(dāng)超過該閥值條目將被丟棄。該閥值同樣決定生存時(shí)間以及廢物收集通過的時(shí)間間隔。條目越多,存活期越低,GC 間隔越短。 缺省設(shè)置:65664 2) /proc/sys/net/ipv4/inet_peer_minttl 條目的最低存活期。在重組端必須要有足夠的碎片(fragment)存活期。這個(gè)最低存活期必須保證緩沖池容積是否少于 inet_peer_threshold。該值以 jiffies為單位測(cè)量。 缺省設(shè)置:120 3) /proc/sys/net/ipv4/inet_peer_maxttl 條目的最大存活期。在此期限到達(dá)之后,如果緩沖池沒有耗盡壓力的話(例如:緩沖池中的條目數(shù)目非常少),不使用的條目將會(huì)超時(shí)。該值以 jiffies為單位測(cè)量。 缺省設(shè)置:600 4) /proc/sys/net/ipv4/inet_peer_gc_mintime 廢物收集(GC)通過的最短間隔。這個(gè)間隔會(huì)影響到緩沖池中內(nèi)存的高壓力。 該值以 jiffies為單位測(cè)量。 缺省設(shè)置:10 5) /proc/sys/net/ipv4/inet_peer_gc_maxtime 廢物收集(GC)通過的最大間隔,這個(gè)間隔會(huì)影響到緩沖池中內(nèi)存的低壓力。 該值以 jiffies為單位測(cè)量。 缺省設(shè)置:120 6.3 TCP Variables 1) /proc/sys/net/ipv4/tcp_syn_retries 該文件表示本機(jī)向外發(fā)起TCP SYN連接超時(shí)重傳的次數(shù),不應(yīng)該高于255;該值僅僅針對(duì)外出的連接,對(duì)于進(jìn)來(lái)的連接由tcp_retries1控制。 缺省設(shè)置:5 2) /proc/sys/net/ipv4/tcp_keepalive_probes 該文件表示丟棄TCP連接前,進(jìn)行最大TCP保持連接偵測(cè)的次數(shù)。保持連接僅在SO_KEEPALIVE套接字選項(xiàng)被打開時(shí)才被發(fā)送。 缺省設(shè)置:9(次) 3) /proc/sys/net/ipv4/tcp_keepalive_time 該文件表示從不再傳送數(shù)據(jù)到向連接上發(fā)送保持連接信號(hào)之間所需的秒數(shù)。 缺省設(shè)置:7200(2小時(shí)) 4) /proc/sys/net/ipv4/tcp_keepalive_intvl 該文件表示發(fā)送TCP探測(cè)的頻率,乘以tcp_keepalive_probes表示斷開沒有相應(yīng)的TCP連接的時(shí)間。 缺省設(shè)置:75(秒) 5) /proc/sys/net/ipv4/tcp_retries1 該文件表示放棄回應(yīng)一個(gè)TCP連接請(qǐng)求前進(jìn)行重傳的次數(shù)。 缺省設(shè)置:3 6) /proc/sys/net/ipv4/tcp_retries2 該文件表示放棄在已經(jīng)建立通訊狀態(tài)下的一個(gè)TCP數(shù)據(jù)包前進(jìn)行重傳的次數(shù)。 缺省設(shè)置:15 7) /proc/sys/net/ipv4/tcp_orphan_retries 在近端丟棄TCP連接之前,要進(jìn)行多少次重試。默認(rèn)值是 7 個(gè),相當(dāng)于 50秒–16分鐘,視 RTO 而定。如果您的系統(tǒng)是負(fù)載很大的web服務(wù)器,那么也許需 要降低該值,這類 sockets 可能會(huì)耗費(fèi)大量的資源。另外參考tcp_max_orphans。 8) /proc/sys/net/ipv4/tcp_fin_timeout 對(duì)于本端斷開的socket連接,TCP保持在FIN-WAIT-2狀態(tài)的時(shí)間。對(duì)方可能 會(huì)斷開連接或一直不結(jié)束連接或不可預(yù)料的進(jìn)程死亡。默認(rèn)值為 60 秒。過去在2.2版本的內(nèi)核中是 180 秒。您可以設(shè)置該值,但需要注意,如果您的機(jī)器為負(fù)載很重的web服務(wù)器,您可能要冒內(nèi)存被大量無(wú)效數(shù)據(jù)報(bào)填滿的風(fēng)險(xiǎn),F(xiàn)IN-WAIT-2 sockets 的危險(xiǎn)性低于 FIN-WAIT-1,因?yàn)樗鼈冏疃嘀怀?1.5K的內(nèi)存,但是它們存在時(shí)間更長(zhǎng)。另外參考 tcp_max_orphans。 缺省設(shè)置:60(秒) 9) /proc/sys/net/ipv4/tcp_max_tw_buckets系統(tǒng)在同時(shí)所處理的最大timewait sockets 數(shù)目。如果超過此數(shù)的話,time-wait socket 會(huì)被立即砍除并且顯示警告信息。之所以要設(shè)定這個(gè)限制,純粹為了抵御那些簡(jiǎn)單的 DoS 攻擊,千萬(wàn)不要人為的降低這個(gè)限制,不過,如果網(wǎng)絡(luò)條件需要比默認(rèn)值更多,則可以提高它(或許還要增加內(nèi)存)。 缺省設(shè)置:180000 10) /proc/sys/net/ipv4/tcp_tw_recyle 打開快速 TIME-WAIT sockets 回收。除非得到技術(shù)專家的建議或要求,請(qǐng)不要隨意修改這個(gè)值。 缺省設(shè)置:0 11) /proc/sys/net/ipv4/tcp_tw_reuse 該文件表示是否允許重新應(yīng)用處于TIME-WAIT狀態(tài)的socket用于新的TCP連接。 缺省設(shè)置:0 12) /proc/sys/net/ipv4/tcp_max_orphans 系統(tǒng)所能處理不屬于任何進(jìn)程的TCP sockets最大數(shù)量。假如超過這個(gè)數(shù)量,那么不屬于任何進(jìn)程的連接會(huì)被立即reset,并同時(shí)顯示警告信息。之所以要設(shè)定這個(gè)限制,純粹為了抵御那些簡(jiǎn)單的 DoS 攻擊,千萬(wàn)不要依賴這個(gè)或是人為的降低這個(gè)限制。 缺省設(shè)置:8192 13) /proc/sys/net/ipv4/tcp_abort_on_overflow 當(dāng)守護(hù)進(jìn)程太忙而不能接受新的連接,就向?qū)Ψ桨l(fā)送reset消息,默認(rèn)值是false。這意味著當(dāng)溢出的原因是因?yàn)橐粋€(gè)偶然的猝發(fā),那么連接將恢復(fù)狀態(tài)。只有在你確信守護(hù)進(jìn)程真的不能完成連接請(qǐng)求時(shí)才打開該選項(xiàng),該選項(xiàng)會(huì)影響客戶的使用。 缺省設(shè)置:0
14) /proc/sys/net/ipv4/tcp_syncookies
該文件表示是否打開TCP同步標(biāo)簽(syncookie),內(nèi)核必須打開了 CONFIG_SYN_COOKIES項(xiàng)進(jìn)行編譯。 同步標(biāo)簽(syncookie)可以防止一個(gè)套接字在有過多試圖連接到達(dá)時(shí)引起過載。 缺省設(shè)置:0 15) /proc/sys/net/ipv4/tcp_stdurg 使用 TCP urg pointer 字段中的主機(jī)請(qǐng)求解釋功能。大部份的主機(jī)都使用老舊的BSD解釋,因此如果您在 Linux 打開它,或會(huì)導(dǎo)致不能和它們正確溝通。 缺省設(shè)置:0 16) /proc/sys/net/ipv4/tcp_max_syn_backlog 對(duì)于那些依然還未獲得客戶端確認(rèn)的連接請(qǐng)求,需要保存在隊(duì)列中最大數(shù)目。對(duì)于超過 128Mb 內(nèi)存的系統(tǒng),默認(rèn)值是 1024,低于 128Mb 的則為 128。如果服務(wù)器經(jīng)常出現(xiàn)過載,可以嘗試增加這個(gè)數(shù)字。警告!假如您將此值設(shè)為大于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)則系統(tǒng)將忽略所有發(fā)送給自己的ICMP ECHO請(qǐng)求或那些廣播地址的請(qǐng)求。 缺省設(shè)置:1024 17) /proc/sys/net/ipv4/tcp_window_scaling 該文件表示設(shè)置tcp/ip會(huì)話的滑動(dòng)窗口大小是否可變。參數(shù)值為布爾值,為1時(shí)表示可變,為0時(shí)表示不可變。tcp/ip通常使用的窗口最大可達(dá)到 65535 字節(jié),對(duì)于高速網(wǎng)絡(luò),該值可能太小,這時(shí)候如果啟用了該功能,可以使tcp/ip滑動(dòng)窗口大小增大數(shù)個(gè)數(shù)量級(jí),從而提高數(shù)據(jù)傳輸?shù)哪芰Α?br> 缺省設(shè)置:1 18) /proc/sys/net/ipv4/tcp_sack 該文件表示是否啟用有選擇的應(yīng)答(Selective Acknowledgment),這可以通過有選擇地應(yīng)答亂序接收到的報(bào)文來(lái)提高性能(這樣可以讓發(fā)送者只發(fā)送丟失的報(bào)文段);(對(duì)于廣域網(wǎng)通信來(lái)說(shuō))這 個(gè)選項(xiàng)應(yīng)該啟用,但是這會(huì)增加對(duì) CPU 的占用。 缺省設(shè)置:1 19) /proc/sys/net/ipv4/tcp_timestamps 該文件表示是否啟用以一種比超時(shí)重發(fā)更精確的方法(請(qǐng)參閱 RFC 1323)來(lái)啟用對(duì) RTT 的計(jì)算;為了實(shí)現(xiàn)更好的性能應(yīng)該啟用這個(gè)選項(xiàng)。 缺省設(shè)置:1 20) /proc/sys/net/ipv4/tcp_fack 該文件表示是否打開FACK擁塞避免和快速重傳功能。 缺省設(shè)置:1 21) /proc/sys/net/ipv4/tcp_dsack 該文件表示是否允許TCP發(fā)送“兩個(gè)完全相同”的SACK。 缺省設(shè)置:1 22) /proc/sys/net/ipv4/tcp_ecn 該文件表示是否打開TCP的直接擁塞通告功能。 缺省設(shè)置:0 23) /proc/sys/net/ipv4/tcp_reordering 該文件表示TCP流中重排序的數(shù)據(jù)報(bào)最大數(shù)量。 缺省設(shè)置:3
24) /proc/sys/net/ipv4/tcp_retrans_collapse
該文件表示對(duì)于某些有bug的打印機(jī)是否提供針對(duì)其bug的兼容性。 缺省設(shè)置:1 25) /proc/sys/net/ipv4/tcp_wmem 該文件包含3個(gè)整數(shù)值,分別是:min,default,max Min:為TCP socket預(yù)留用于發(fā)送緩沖的內(nèi)存最小值。每個(gè)TCP socket都可以使用它。 Default:為TCP socket預(yù)留用于發(fā)送緩沖的內(nèi)存數(shù)量,默認(rèn)情況下該值會(huì)影響其它協(xié)議使用的net.core.wmem中default的 值,一般要低于net.core.wmem中default的值。 Max:為TCP socket預(yù)留用于發(fā)送緩沖的內(nèi)存最大值。該值不會(huì)影響net.core.wmem_max,今天選擇參數(shù)SO_SNDBUF則不受該值影響。默認(rèn)值為 128K。 缺省設(shè)置:4096 16384 131072
建議設(shè)置:873200 1746400 3492800
26) /proc/sys/net/ipv4/tcp_rmem 該文件包含3個(gè)整數(shù)值,分別是:min,default,max Min:為TCP socket預(yù)留用于接收緩沖的內(nèi)存數(shù)量,即使在內(nèi)存出現(xiàn)緊張情況下TCP socket都至少會(huì)有這么多數(shù)量的內(nèi)存用于接收緩沖。 Default:為TCP socket預(yù)留用于接收緩沖的內(nèi)存數(shù)量,默認(rèn)情況下該值影響其它協(xié)議使用的 net.core.wmem中default的 值。該值決定了在tcp_adv_win_scale、tcp_app_win和tcp_app_win的默認(rèn)值情況下,TCP 窗口大小為65535。 Max:為TCP socket預(yù)留用于接收緩沖的內(nèi)存最大值。該值不會(huì)影響 net.core.wmem中max的值,今天選擇參數(shù) SO_SNDBUF則不受該值影響。 缺省設(shè)置:4096 87380 174760
建議設(shè)置:873200 1746400 3492800
27) /proc/sys/net/ipv4/tcp_mem 該文件包含3個(gè)整數(shù)值,分別是:low,pressure,high Low:當(dāng)TCP使用了低于該值的內(nèi)存頁(yè)面數(shù)時(shí),TCP不會(huì)考慮釋放內(nèi)存。 Pressure:當(dāng)TCP使用了超過該值的內(nèi)存頁(yè)面數(shù)量時(shí),TCP試圖穩(wěn)定其內(nèi)存使用,進(jìn)入pressure模式,當(dāng)內(nèi)存消耗低于low值時(shí)則退出 pressure狀態(tài)。 High:允許所有tcp sockets用于排隊(duì)緩沖數(shù)據(jù)報(bào)的頁(yè)面量。 一般情況下這些值是在系統(tǒng)啟動(dòng)時(shí)根據(jù)系統(tǒng)內(nèi)存數(shù)量計(jì)算得到的。 缺省設(shè)置:24576 32768 49152
建議設(shè)置:78643200 104857600 157286400
28) /proc/sys/net/ipv4/tcp_app_win 該文件表示保留max(window/2^tcp_app_win, mss)數(shù)量的窗口由于應(yīng)用緩沖。當(dāng)為0時(shí)表示不需要緩沖。 缺省設(shè)置:31 29) /proc/sys/net/ipv4/tcp_adv_win_scale 該文件表示計(jì)算緩沖開銷bytes/2^tcp_adv_win_scale(如果tcp_adv_win_scale >; 0)或者bytes-bytes/2^(-tcp_adv_win_scale)(如果tcp_adv_win_scale <= 0)。 缺省設(shè)置:2 6.4 IP Variables 1) /proc/sys/net/ipv4/ip_local_port_range 該文件表示TCP/UDP協(xié)議打開的本地端口號(hào)。 缺省設(shè)置:1024 4999 建議設(shè)置:32768 61000 2) /proc/sys/net/ipv4/ip_nonlocal_bind 該文件表示是否允許進(jìn)程邦定到非本地地址。 缺省設(shè)置:0 3) /proc/sys/net/ipv4/ip_dynaddr 該參數(shù)通常用于使用撥號(hào)連接的情況,可以使系統(tǒng)動(dòng)能夠立即改變ip包的源地址為該ip地址,同時(shí)中斷原有的tcp對(duì)話而用新地址重新發(fā)出一個(gè)syn請(qǐng)求 包,開始新的tcp對(duì)話。在使用ip欺騙時(shí),該參數(shù)可以立即改變偽裝地址為新的ip地址。該文件表示是否允許動(dòng)態(tài)地址,如果該值非0,表示允許;如果該值 大于1,內(nèi)核將通過log記錄動(dòng)態(tài)地址重寫信息。 缺省設(shè)置:0 4) /proc/sys/net/ipv4/icmp_echo_ignore_all/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts 該文件表示內(nèi)核是否忽略所有的ICMP ECHO請(qǐng)求,或忽略廣播和多播請(qǐng)求。 0, 響應(yīng)請(qǐng)求 1, 忽略請(qǐng)求 缺省設(shè)置:0 建議設(shè)置: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標(biāo)準(zhǔn),其對(duì)廣播幀發(fā)送偽造的響應(yīng)來(lái)應(yīng)答。這種違背行為通常會(huì)被以告警的方式記錄在系統(tǒng)日志中。如果該選項(xiàng)設(shè)置為True,內(nèi)核不會(huì)記錄這種警告信息。 缺省設(shè)置:0 8) /proc/sys/net/ipv4/igmp_max_memberships 該文件表示多播組中的最大成員數(shù)量。 缺省設(shè)置:20
6.5 Other Configuration
1) /proc/sys/net/ipv4/conf/*/accept_redirects 如果主機(jī)所在的網(wǎng)段中有兩個(gè)路由器,你將其中一個(gè)設(shè)置成了缺省網(wǎng)關(guān),但是該網(wǎng)關(guān)在收到你的ip包時(shí)發(fā)現(xiàn)該ip包必須經(jīng)過另外一個(gè)路由器,這時(shí)這個(gè)路由器就會(huì)給你發(fā)一個(gè)所謂的“重定向”icmp包,告訴將ip包轉(zhuǎn)發(fā)到另外一個(gè)路由器。參數(shù)值為布爾值,1表示接收這類重定向icmp 信息,0表示忽略。
在充當(dāng)路由器的linux主機(jī)上缺省值為0,
在一般的linux主機(jī)上缺省值為1。
建議將其改為0以消除安全性隱患。
2) /proc/sys/net/ipv4/*/accept_source_route 是否接受含有源路由信息的ip包。參數(shù)值為布爾值,1表示接受,0表示不接受。在充當(dāng)網(wǎng)關(guān)的linux主機(jī)上缺省值為1,在一般的linux主機(jī)上缺省值為0。從安全性角度出發(fā),建議關(guān)閉該功能。
3) /proc/sys/net/ipv4/*/secure_redirects
其實(shí)所謂的“安全重定向”就是只接受來(lái)自網(wǎng)關(guān)的“重定向”icmp包。該參數(shù)就是用來(lái)設(shè)置“安全重定向”功能的。
參數(shù)值為布爾值,1表示啟用,0表示禁止,
缺省值為啟用。
4) /proc/sys/net/ipv4/*/proxy_arp 設(shè)置是否對(duì)網(wǎng)絡(luò)上的arp包進(jìn)行中繼。參數(shù)值為布爾值,1表示中繼,0表示忽略, 缺省值為0。該參數(shù)通常只對(duì)充當(dāng)路由器的linux主機(jī)有用。
tcp_mem
tcp_mem
tcp_mem
tcp_mem
tcp_mem
tcp_mem
tcp_mem
tcp_mem
tcp_mem
|
|