Linux網(wǎng)絡(luò)內(nèi)核參數(shù)優(yōu)化

網(wǎng)上購(gòu)買(mǎi)的VPS普遍內(nèi)存少达布,如何用有限的資源支持最多的網(wǎng)絡(luò)連接,這就需要修改Linux內(nèi)核參數(shù)欣尼。

用vim打開(kāi)配置文件:#vim /etc/sysctl.conf`

在這個(gè)文件中宙彪,加入下面的幾行內(nèi)容:

net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30`

輸入下面的命令,讓內(nèi)核參數(shù)生效:#sysctl -p

簡(jiǎn)單的說(shuō)明上面的參數(shù)的含義:

net.ipv4.tcp_syncookies = 1
#表示開(kāi)啟SYN Cookies撑刺。當(dāng)出現(xiàn)SYN等待隊(duì)列溢出時(shí),啟用cookies來(lái)處理握玛,可防范少量SYN攻擊猜煮,默認(rèn)為0次员,表示關(guān)閉;
net.ipv4.tcp_tw_reuse = 1
#表示開(kāi)啟重用王带。允許將TIME-WAIT sockets重新用于新的TCP連接,默認(rèn)為0市殷,表示關(guān)閉愕撰;
net.ipv4.tcp_tw_recycle = 1
#表示開(kāi)啟TCP連接中TIME-WAIT sockets的快速回收,默認(rèn)為0醋寝,表示關(guān)閉搞挣;
net.ipv4.tcp_fin_timeout
#修改系統(tǒng)默認(rèn)的 TIMEOUT 時(shí)間。

在經(jīng)過(guò)這樣的調(diào)整之后音羞,除了會(huì)進(jìn)一步提升服務(wù)器的負(fù)載能力之外囱桨,還能夠防御小流量程度的DoS、CC和SYN攻擊嗅绰。

此外舍肠,如果你的連接數(shù)本身就很多,我們可以再優(yōu)化一下TCP的可使用端口范圍窘面,進(jìn)一步提升服務(wù)器的并發(fā)能力翠语。依然是往上面的參數(shù)文件中,加入下面這些配置:

net.ipv4.tcp_keepalive_time = 1200
net.ipv4.ip_local_port_range = 10000 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000

這幾個(gè)參數(shù)财边,建議只在流量非常大的服務(wù)器上開(kāi)啟肌括,會(huì)有顯著的效果。一般的流量小的服務(wù)器上酣难,沒(méi)有必要去設(shè)置這幾個(gè)參數(shù)谍夭。

net.ipv4.tcp_keepalive_time = 1200
#表示當(dāng)keepalive起用的時(shí)候,TCP發(fā)送keepalive消息的頻度憨募。缺省是2小時(shí)紧索,改為20分鐘。
net.ipv4.ip_local_port_range = 10000 65000
#表示用于向外連接的端口范圍馋嗜。缺省情況下很衅氚濉:32768到61000,改為10000到65000葛菇。(注意:這里不要將最低值設(shè)的太低甘磨,否則可能會(huì)占用掉正常的端口!)
net.ipv4.tcp_max_syn_backlog = 8192
#表示SYN隊(duì)列的長(zhǎng)度眯停,默認(rèn)為1024济舆,加大隊(duì)列長(zhǎng)度為8192,可以容納更多等待連接的網(wǎng)絡(luò)連接數(shù)莺债。
net.ipv4.tcp_max_tw_buckets = 6000
#表示系統(tǒng)同時(shí)保持TIME_WAIT的最大數(shù)量滋觉,如果超過(guò)這個(gè)數(shù)字签夭,TIME_WAIT將立刻被清除并打印警告信息。默 認(rèn)為180000椎侠,改為6000第租。對(duì)于Apache、Nginx等服務(wù)器我纪,上幾行的參數(shù)可以很好地減少TIME_WAIT套接字?jǐn)?shù)量慎宾,但是對(duì)于 [Squid](http://www.ha97.com/tag/squid),效果卻不大浅悉。此項(xiàng)參數(shù)可以控制TIME_WAIT的最大數(shù)量趟据,避免Squid服務(wù)器被大量的TIME_WAIT拖死。

內(nèi)核其他TCP參數(shù)說(shuō)明:

net.ipv4.tcp_max_syn_backlog = 65536
#記錄的那些尚未收到客戶端確認(rèn)信息的連接請(qǐng)求的最大值术健。對(duì)于有128M內(nèi)存的系統(tǒng)而言汹碱,缺省值是1024,小內(nèi)存的系統(tǒng)則是128荞估。
net.core.netdev_max_backlog = 32768
#每個(gè)網(wǎng)絡(luò)接口接收數(shù)據(jù)包的速率比內(nèi)核處理這些包的速率快時(shí)咳促,允許送到隊(duì)列的數(shù)據(jù)包的最大數(shù)目。
net.core.somaxconn = 32768
#web應(yīng)用中l(wèi)isten函數(shù)的backlog默認(rèn)會(huì)給我們內(nèi)核參數(shù)的net.core.somaxconn限制到128泼舱,而nginx定義的NGX_LISTEN_BACKLOG默認(rèn)為511等缀,所以有必要調(diào)整這個(gè)值。
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216           #最大socket讀buffer,可參考的優(yōu)化值:873200
net.core.wmem_max = 16777216           #最大socket寫(xiě)buffer,可參考的優(yōu)化值:873200
net.ipv4.tcp_timestsmps = 0
#時(shí)間戳可以避免序列號(hào)的卷繞娇昙。一個(gè)1Gbps的鏈路肯定會(huì)遇到以前用過(guò)的序列號(hào)尺迂。時(shí)間戳能夠讓內(nèi)核接受這種“異常”的數(shù)據(jù)包冒掌。這里需要將其關(guān)掉噪裕。
net.ipv4.tcp_synack_retries = 2
#為了打開(kāi)對(duì)端的連接,內(nèi)核需要發(fā)送一個(gè)SYN并附帶一個(gè)回應(yīng)前面一個(gè)SYN的ACK股毫。也就是所謂三次握手中的第二次握手膳音。這個(gè)設(shè)置決定了內(nèi)核放棄連接之前發(fā)送SYN+ACK包的數(shù)量。
net.ipv4.tcp_syn_retries = 2
#在內(nèi)核放棄建立連接之前發(fā)送SYN包的數(shù)量铃诬。
#net.ipv4.tcp_tw_len = 1
net.ipv4.tcp_tw_reuse = 1
# 開(kāi)啟重用祭陷。允許將TIME-WAIT sockets重新用于新的TCP連接。
net.ipv4.tcp_wmem = 8192 436600 873200
# TCP寫(xiě)buffer,可參考的優(yōu)化值: 8192 436600 873200
net.ipv4.tcp_rmem  = 32768 436600 873200
# TCP讀buffer,可參考的優(yōu)化值: 32768 436600 873200
net.ipv4.tcp_mem = 94500000 91500000 92700000
# 同樣有3個(gè)值,意思是:
#net.ipv4.tcp_mem[0]:低于此值趣席,TCP沒(méi)有內(nèi)存壓力兵志。
#net.ipv4.tcp_mem[1]:在此值下,進(jìn)入內(nèi)存壓力階段宣肚。
#net.ipv4.tcp_mem[2]:高于此值想罕,TCP拒絕分配socket。
#上述內(nèi)存單位是頁(yè)霉涨,而不是字節(jié)按价〔咽剩可參考的優(yōu)化值是:786432 1048576 1572864
net.ipv4.tcp_max_orphans = 3276800
#系統(tǒng)中最多有多少個(gè)TCP套接字不被關(guān)聯(lián)到任何一個(gè)用戶文件句柄上。
#如果超過(guò)這個(gè)數(shù)字楼镐,連接將即刻被復(fù)位并打印出警告信息癞志。
#這個(gè)限制僅僅是為了防止簡(jiǎn)單的DoS攻擊,不能過(guò)分依靠它或者人為地減小這個(gè)值框产,
#更應(yīng)該增加這個(gè)值(如果增加了內(nèi)存之后)今阳。
net.ipv4.tcp_fin_timeout = 30
#如果套接字由本端要求關(guān)閉,這個(gè)參數(shù)決定了它保持在FIN-WAIT-2狀態(tài)的時(shí)間茅信。對(duì)端可以出錯(cuò)并永遠(yuǎn)不關(guān)閉連接,甚至意外當(dāng)機(jī)墓臭。缺省值是60秒蘸鲸。2.2 內(nèi)核的通常值是180秒,你可以按這個(gè)設(shè)置窿锉,但要記住的是酌摇,即使你的機(jī)器是一個(gè)輕載的WEB服務(wù)器,也有因?yàn)榇罅康乃捞捉幼侄鴥?nèi)存溢出的風(fēng)險(xiǎn)嗡载,F(xiàn)IN- WAIT-2的危險(xiǎn)性比FIN-WAIT-1要小,因?yàn)樗疃嘀荒艹缘?.5K內(nèi)存,但是它們的生存期長(zhǎng)些统诺。

經(jīng)過(guò)上述調(diào)整后皮璧,linux系統(tǒng)支持的網(wǎng)絡(luò)并發(fā)會(huì)有顯著增加。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末遥巴,一起剝皮案震驚了整個(gè)濱河市千康,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌铲掐,老刑警劉巖拾弃,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異摆霉,居然都是意外死亡豪椿,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)携栋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)搭盾,“玉大人,你說(shuō)我怎么就攤上這事刻两≡霾洌” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵磅摹,是天一觀的道長(zhǎng)滋迈。 經(jīng)常有香客問(wèn)我霎奢,道長(zhǎng),這世上最難降的妖魔是什么饼灿? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任幕侠,我火速辦了婚禮,結(jié)果婚禮上碍彭,老公的妹妹穿的比我還像新娘晤硕。我一直安慰自己,他們只是感情好庇忌,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布舞箍。 她就那樣靜靜地躺著,像睡著了一般皆疹。 火紅的嫁衣襯著肌膚如雪疏橄。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,146評(píng)論 1 297
  • 那天略就,我揣著相機(jī)與錄音捎迫,去河邊找鬼。 笑死表牢,一個(gè)胖子當(dāng)著我的面吹牛窄绒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播崔兴,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼彰导,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了恼布?” 一聲冷哼從身側(cè)響起螺戳,我...
    開(kāi)封第一講書(shū)人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎折汞,沒(méi)想到半個(gè)月后倔幼,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡爽待,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年损同,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鸟款。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡膏燃,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出何什,到底是詐尸還是另有隱情组哩,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站伶贰,受9級(jí)特大地震影響蛛砰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜黍衙,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一泥畅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧琅翻,春花似錦位仁、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至棠众,卻和暖如春涛浙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背摄欲。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留疮薇,地道東北人胸墙。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像按咒,于是被迫代替她去往敵國(guó)和親迟隅。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容