Nginx Http 模塊中 Upstream 的 keepalive 參數(shù)配置注意事項

摘要

在高并發(fā)環(huán)境下 keepalive 參數(shù)配置不當(dāng)容易產(chǎn)生大量 TIME_WAIT琢岩,導(dǎo)致端口耗盡,服務(wù)異常。

keepalive 值應(yīng)該大于等于 upstream 中 server 的數(shù)量。(建議是 server 數(shù)的 2 倍)

詳細(xì)說明

keepalive 用于設(shè)置保留在每個 nginx worker 緩存中『已經(jīng)與上游服務(wù)器建立的空閑連接』的最大連接數(shù)余爆,如果超過這個值,最近最少使用的連接將被關(guān)閉夸盟。

Nginx 官方建議這個值應(yīng)該盡可能小蛾方,以便讓上游服務(wù)器也能處理新進(jìn)入的連接。但是『盡可能小』有些太模糊,如果配置不當(dāng)會降低性能以及產(chǎn)生其他問題转捕。

在大量短鏈接(或者大量分散用戶)的請求場景下,同時 upstream 為輪詢模式時唆垃,因為 keepalive 值小于 upstream server 數(shù)五芝,upstream 新的空閑連接會從緩存中擠出老的空閑鏈接,導(dǎo)致 keepalive 在某種意義上失效辕万。

根據(jù)下面配置枢步,以單個 nginx worker 處理請求為例,這里做個更詳細(xì)的解釋:

upstream http_backend {
    server 10.0.0.1;
    server 10.0.0.2;
    server 10.0.0.3;

    keepalive 2;
}

server {
    ...

    location /http/ {
        proxy_pass http://http_backend;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        ...
    }
}

第一個請求進(jìn)來渐尿,nginx 與 10.0.0.1 建立連接醉途,請求處理完成后,nginx 與 10.0.0.1 的空閑連接被放入空閑連接池砖茸;

第二個請求進(jìn)來隘擎,nginx 與 10.0.0.2 建立連接,請求處理完成后凉夯,nginx 與 10.0.0.2 的空閑連接被放入空閑連接池货葬;

第三個請求進(jìn)來,nginx 與 10.0.0.3 建立連接劲够,請求處理完成后震桶,因為最大空閑連接數(shù)為 2,連接數(shù)已滿征绎,所以 nginx 與 10.0.0.1 的空閑連接被 close蹲姐,nginx 與 10.0.0.3 的空閑連接被放入空閑連接池;

第四個請求進(jìn)來人柿,nginx 再次與 10.0.0.1 建立連接柴墩,請求處理完成后,因為最大空閑連接數(shù)為 2凫岖,連接數(shù)已滿拐邪,所以 nginx 與 10.0.0.2 的空閑連接被 close,nginx 與 10.0.0.1 的空閑連接被放入空閑連接池

隘截。扎阶。。以此類推

這種效果就像沒有配置 keepalive

挖個坑:以上內(nèi)容根據(jù)實踐經(jīng)驗以及推測而得出婶芭,待我用源碼來證明 :)

參考文檔:

nginx 官方文檔: https://nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末东臀,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子犀农,更是在濱河造成了極大的恐慌惰赋,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異赁濒,居然都是意外死亡轨奄,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門拒炎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來挪拟,“玉大人,你說我怎么就攤上這事击你∮褡椋” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵惯雳,是天一觀的道長。 經(jīng)常有香客問我鸿摇,道長,這世上最難降的妖魔是什么拙吉? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮庐镐,結(jié)果婚禮上恩商,老公的妹妹穿的比我還像新娘必逆。我一直安慰自己,他們只是感情好名眉,可當(dāng)我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布粟矿。 她就那樣靜靜地躺著损拢,像睡著了一般。 火紅的嫁衣襯著肌膚如雪福压。 梳的紋絲不亂的頭發(fā)上掏秩,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天荆姆,我揣著相機與錄音,去河邊找鬼胆筒。 笑死邮破,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播抒和,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼矫渔,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了摧莽?” 一聲冷哼從身側(cè)響起庙洼,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎范嘱,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體员魏,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡丑蛤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了撕阎。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片受裹。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖虏束,靈堂內(nèi)的尸體忽然破棺而出棉饶,到底是詐尸還是另有隱情,我是刑警寧澤镇匀,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布照藻,位于F島的核電站,受9級特大地震影響汗侵,放射性物質(zhì)發(fā)生泄漏幸缕。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一晰韵、第九天 我趴在偏房一處隱蔽的房頂上張望发乔。 院中可真熱鬧,春花似錦雪猪、人聲如沸栏尚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽译仗。三九已至,卻和暖如春官觅,著一層夾襖步出監(jiān)牢的瞬間古劲,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工缰猴, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留产艾,地道東北人。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像闷堡,于是被迫代替她去往敵國和親隘膘。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,786評論 2 345

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