基于Nginx實現(xiàn)10萬+并發(fā)急但,你應該做的Linux內(nèi)核優(yōu)化

由于默認的linux內(nèi)核參數(shù)考慮的是最通用場景,這明顯不符合用于支持高并發(fā)訪問的Web服務器的定義晾蜘,所以需要修改Linux內(nèi)核參數(shù)邻眷,是的Nginx可以擁有更高的性能;

在優(yōu)化內(nèi)核時剔交,可以做的事情很多肆饶,不過,我們通常會根據(jù)業(yè)務特點來進行調(diào)整岖常,當Nginx作為靜態(tài)web內(nèi)容服務器驯镊、反向代理或者提供壓縮服務器的服務器時,期內(nèi)核參數(shù)的調(diào)整都是不同的竭鞍,這里針對最通用的板惑、使Nginx支持更多并發(fā)請求的TCP網(wǎng)絡參數(shù)做簡單的配置;

首先偎快,你需要修改 /etc/sysctl.conf 來更改內(nèi)核參數(shù)冯乘。

fs.file-max = 999999

表示單個進程最大可以打開的句柄數(shù);

net.ipv4.tcp_tw_reuse = 1

參數(shù)設(shè)置為 1 晒夹,表示允許將TIME_WAIT狀態(tài)的socket重新用于新的TCP鏈接裆馒,這對于服務器來說意義重大姊氓,因為總有大量TIME_WAIT狀態(tài)的鏈接存在;

ner.ipv4.tcp_keepalive_time = 600

當keepalive啟動時喷好,TCP發(fā)送keepalive消息的頻度翔横;默認是2小時,將其設(shè)置為10分鐘梗搅,可以更快的清理無效鏈接棕孙。

net.ipv4.tcp_fin_timeout = 30

當服務器主動關(guān)閉鏈接時,socket保持在FIN_WAIT_2狀態(tài)的最大時間

net.ipv4.tcp_max_tw_buckets = 5000

這個參數(shù)表示操作系統(tǒng)允許TIME_WAIT套接字數(shù)量的最大值些膨,如果超過這個數(shù)字蟀俊,TIME_WAIT套接字將立刻被清除并打印警告信息。

該參數(shù)默認為180000订雾,過多的TIME_WAIT套接字會使Web服務器變慢肢预。

net.ipv4.ip_local_port_range = 1024 65000

定義UDP和TCP鏈接的本地端口的取值范圍。

net.ipv4.tcp_rmem = 10240 87380 12582912

定義了TCP接受緩存的最小值洼哎、默認值烫映、最大值。

net.ipv4.tcp_wmem = 10240 87380 12582912

定義TCP發(fā)送緩存的最小值噩峦、默認值锭沟、最大值。

net.core.netdev_max_backlog = 8096

當網(wǎng)卡接收數(shù)據(jù)包的速度大于內(nèi)核處理速度時识补,會有一個列隊保存這些數(shù)據(jù)包族淮。這個參數(shù)表示該列隊的最大值。

net.core.rmem_default = 6291456

表示內(nèi)核套接字接受緩存區(qū)默認大小凭涂。

net.core.wmem_default = 6291456

表示內(nèi)核套接字發(fā)送緩存區(qū)默認大小祝辣。

net.core.rmem_max = 12582912

表示內(nèi)核套接字接受緩存區(qū)最大大小。

net.core.wmem_max = 12582912

表示內(nèi)核套接字發(fā)送緩存區(qū)最大大小切油。

注意:以上的四個參數(shù)蝙斜,需要根據(jù)業(yè)務邏輯和實際的硬件成本來綜合考慮;

net.ipv4.tcp_syncookies = 1

與性能無關(guān)澎胡。用于解決TCP的SYN攻擊孕荠。

net.ipv4.tcp_max_syn_backlog = 8192

這個參數(shù)表示TCP三次握手建立階段接受SYN請求列隊的最大長度,默認1024攻谁,將其設(shè)置的大一些可以使出現(xiàn)Nginx繁忙來不及accept新連接的情況時稚伍,Linux不至于丟失客戶端發(fā)起的鏈接請求。

net.ipv4.tcp_tw_recycle = 1

這個參數(shù)用于設(shè)置啟用timewait快速回收巢株。

net.core.somaxconn=262114

選項默認值是128槐瑞,這個參數(shù)用于調(diào)節(jié)系統(tǒng)同時發(fā)起的TCP連接數(shù)熙涤,在高并發(fā)的請求中阁苞,默認的值可能會導致鏈接超時或者重傳困檩,因此需要結(jié)合高并發(fā)請求數(shù)來調(diào)節(jié)此值。

net.ipv4.tcp_max_orphans=262114

選項用于設(shè)定系統(tǒng)中最多有多少個TCP套接字不被關(guān)聯(lián)到任何一個用戶文件句柄上那槽。如果超過這個數(shù)字悼沿,孤立鏈接將立即被復位并輸出警告信息。這個限制指示為了防止簡單的DOS攻擊骚灸,不用過分依靠這個限制甚至認為的減小這個值糟趾,更多的情況是增加這個值。

為了方便使用甚牲,下方不帶注釋的可以直接復制

fs.file-max = 999999
net.ipv4.tcp_tw_reuse = 1
ner.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_fin_timeout = 30 
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.ip_local_port_range = 1024 65000 
net.ipv4.tcp_rmem = 10240 87380 12582912 
net.ipv4.tcp_wmem = 10240 87380 12582912 
net.core.netdev_max_backlog = 8096 
net.core.rmem_default = 6291456 
net.core.wmem_default = 6291456 
net.core.rmem_max = 12582912 
net.core.wmem_max = 12582912 
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_tw_recycle = 1 
net.core.somaxconn=262114 
net.ipv4.tcp_max_orphans=262114 

修改好配置文件义郑,執(zhí)行 sysctl -p 命令,使配置立即生效

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末丈钙,一起剝皮案震驚了整個濱河市非驮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌雏赦,老刑警劉巖劫笙,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異星岗,居然都是意外死亡填大,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門俏橘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來允华,“玉大人,你說我怎么就攤上這事寥掐±瘢” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵曹仗,是天一觀的道長榨汤。 經(jīng)常有香客問我,道長怎茫,這世上最難降的妖魔是什么收壕? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮轨蛤,結(jié)果婚禮上蜜宪,老公的妹妹穿的比我還像新娘。我一直安慰自己祥山,他們只是感情好圃验,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著缝呕,像睡著了一般澳窑。 火紅的嫁衣襯著肌膚如雪斧散。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天摊聋,我揣著相機與錄音鸡捐,去河邊找鬼。 笑死麻裁,一個胖子當著我的面吹牛箍镜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播煎源,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼色迂,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了手销?” 一聲冷哼從身側(cè)響起脚草,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎原献,沒想到半個月后馏慨,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡姑隅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年写隶,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片讲仰。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡慕趴,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鄙陡,到底是詐尸還是另有隱情冕房,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布趁矾,位于F島的核電站耙册,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏毫捣。R本人自食惡果不足惜详拙,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蔓同。 院中可真熱鬧饶辙,春花似錦、人聲如沸斑粱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至矿微,卻和暖如春痕慢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背冷冗。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留惑艇,地道東北人蒿辙。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像滨巴,于是被迫代替她去往敵國和親思灌。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

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