精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

為高負(fù)載網(wǎng)絡(luò)優(yōu)化Nginx和Node.js方法

網(wǎng)絡(luò) 網(wǎng)絡(luò)優(yōu)化 網(wǎng)絡(luò)運(yùn)維
在搭建高吞吐量web應(yīng)用這個議題上,NginX和Node.js可謂是天生一對。他們都是基于事件驅(qū)動模型而設(shè)計,可以輕易突破Apache等傳統(tǒng)web服務(wù)器的C10K瓶頸。

在搭建高吞吐量web應(yīng)用這個議題上,NginX和Node.js可謂是天生一對。他們都是基于事件驅(qū)動模型而設(shè)計,可以輕易突破Apache等傳統(tǒng)web服務(wù)器的C10K瓶頸。

預(yù)設(shè)的配置已經(jīng)可以獲得很高的并發(fā),不過,要是大家想在廉價硬件上做到每秒數(shù)千以上的請求,還是有一些工作要做的。

這篇文章假定讀者們使用NginX的HttpProxyModule來為上游的node.js服務(wù)器充當(dāng)反向代理。我們將介紹Ubuntu 10.04以上系統(tǒng)sysctl的調(diào)優(yōu),以及node.js應(yīng)用與NginX的調(diào)優(yōu)。當(dāng)然,如果大家用的是Debian系統(tǒng),也能達(dá)到同樣的目標(biāo),只不過調(diào)優(yōu)的方法有所不同而已。

網(wǎng)絡(luò)調(diào)優(yōu)

如果不先對Nginx和Node.js的底層傳輸機(jī)制有所了解,并進(jìn)行針對性優(yōu)化,可能對兩者再細(xì)致的調(diào)優(yōu)也會徒勞無功。一般情況下,Nginx通過TCP socket來連接客戶端與上游應(yīng)用。

我們的系統(tǒng)對TCP有許多門限值與限制,通過內(nèi)核參數(shù)來設(shè)定。這些參數(shù)的默認(rèn)值往往是為一般的用途而定的,并不能滿足web服務(wù)器所需的高流量、短生命的要求。

這里列出了調(diào)優(yōu)TCP可供候選的一些參數(shù)。為使它們生效,可以將它們放在/etc/sysctl.conf文件里,或者放入一個新配置文件,比如/etc/sysctl.d/99-tuning.conf,然后運(yùn)行sysctl -p,讓內(nèi)核裝載它們。我們是用sysctl-cookbook來干這個體力活。

需要注意的是,這里列出來的值是可以安全使用的,但還是建議大家研究一下每個參數(shù)的含義,以便根據(jù)自己的負(fù)荷、硬件和使用情況選擇一個更加合適的值。

重點(diǎn)說明其中幾個重要的。

net.ipv4.ip_local_port_range

為了替上游的應(yīng)用服務(wù)下游的客戶端,NginX必須打開兩條TCP連接,一條連接客戶端,一條連接應(yīng)用。在服務(wù)器收到很多連接時,系統(tǒng)的可用端口將很快被耗盡。通過修改net.ipv4.ip_local_port_range參數(shù),可以將可用端口的范圍改大。如果在/var/log/syslog中發(fā)現(xiàn)有這樣的錯誤: “possible SYN flooding on port 80. Sending cookies”,即表明系統(tǒng)找不到可用端口。增大net.ipv4.ip_local_port_range參數(shù)可以減少這個錯誤。

net.ipv4.tcp_tw_reuse

當(dāng)服務(wù)器需要在大量TCP連接之間切換時,會產(chǎn)生大量處于TIME_WAIT狀態(tài)的連接。TIME_WAIT意味著連接本身是關(guān)閉的,但資源還沒有釋放。將net_ipv4_tcp_tw_reuse設(shè)置為1是讓內(nèi)核在安全時盡量回收連接,這比重新建立新連接要便宜得多。

net.ipv4.tcp_fin_timeout

這是處于TIME_WAIT狀態(tài)的連接在回收前必須等待的最小時間。改小它可以加快回收。

如何檢查連接狀態(tài)

使用netstat:

netstat -tan | awk '{print $6}' | sort | uniq -c

或使用ss:

ss -s

NginX

ss -s

Total: 388 (kernel 541)

TCP: 47461 (estab 311, closed 47135, orphaned 4, synrecv 0, timewait 47135/0), ports 33938

Transport Total IP IPv6

* 541 - -

RAW 0 0 0

UDP 13 10 3

TCP 326 325 1

INET 339 335 4

FRAG 0 0 0

隨著web服務(wù)器的負(fù)載逐漸升高,我們就會開始遭遇NginX的某些奇怪限制。連接被丟棄,內(nèi)核不停報SYN flood。而這時,平均負(fù)荷和CPU使用率都很小,服務(wù)器明明是可以處理更多連接的狀態(tài),真令人沮喪。

經(jīng)過調(diào)查,發(fā)現(xiàn)有非常多處于TIME_WAIT狀態(tài)的連接。這是其中一個服務(wù)器的輸出:

有47135個TIME_WAIT連接!而且,從ss可以看出,它們都是已經(jīng)關(guān)閉的連接。這說明,服務(wù)器已經(jīng)消耗了絕大部分可用端口,同時也暗示我們,服務(wù)器是為每個連接都分配了新端口。調(diào)優(yōu)網(wǎng)絡(luò)對這個問題有一點(diǎn)幫助,但是端口仍然不夠用。

經(jīng)過繼續(xù)研究,我找到了一個關(guān)于上行連接keepalive指令的文檔,它寫道:

設(shè)置通往上游服務(wù)器的***空閑?;钸B接數(shù),這些連接會被保留在工作進(jìn)程的緩存中。

有趣。理論上,這個設(shè)置是通過在緩存的連接上傳遞請求來盡可能減少連接的浪費(fèi)。文檔中還提到,我們應(yīng)該把proxy_http_version設(shè)為"1.1",并清除"Connection"頭部。經(jīng)過進(jìn)一步的研究,我發(fā)現(xiàn)這是一種很好的想法,因為HTTP/1.1相比HTTP1.0,大大優(yōu)化了TCP連接的使用率,而Nginx默認(rèn)用的是HTTP/1.0。

按文檔的建議修改后,我們的上行配置文件變成這樣:

我還按它的建議修改了server一節(jié)的proxy設(shè)置。同時,加了一個 proxy_next_upstream來跳過故障的服務(wù)器,調(diào)整了客戶端的 keepalive_timeout,并關(guān)閉訪問日志。配置變成這樣:

采用新的配置后,我發(fā)現(xiàn)服務(wù)器們占用的socket 降低了90%?,F(xiàn)在可以用少得多的連接來傳輸請求了。新的輸出如下:

ss -s

Total: 558 (kernel 604)

TCP: 4675 (estab 485, closed 4183, orphaned 0, synrecv 0, timewait 4183/0), ports 2768

Transport Total IP IPv6

* 604 - -

RAW 0 0 0

UDP 13 10 3

TCP 492 491 1

INET 505 501 4

Node.js

得益于事件驅(qū)動式設(shè)計可以異步處理I/O,Node.js開箱即可處理大量的連接和請求。雖然有其它一些調(diào)優(yōu)手段,但這篇文章將主要關(guān)注node.js的進(jìn)程方面。

Node是單線程的,不會自動使用多核。也就是說,應(yīng)用不能自動獲得服務(wù)器的全部能力。

實現(xiàn)Node進(jìn)程的集群化

我們可以修改應(yīng)用,讓它fork多個線程,在同一個端口上接收數(shù)據(jù),從而實現(xiàn)負(fù)載的跨越多核。Node有一個cluster模塊,提供了實現(xiàn)這個目標(biāo)所必需的所有工具,但要將它們加入應(yīng)用中還需要很多體力活。如果你用的是express,eBay有一個叫cluster2的模塊可以用。

防止上下文切換

當(dāng)運(yùn)行多個進(jìn)程時,應(yīng)該確保每個CPU核同一時間只忙于一個進(jìn)程。一般來說,如果CPU有N個核,我們應(yīng)該生成N-1個應(yīng)用進(jìn)程。這樣可以確保每個進(jìn)程都能得到合理的時間片,而剩下的一個核留給內(nèi)核調(diào)度程序運(yùn)行其它任務(wù)。我們還要確保服務(wù)器上基本不執(zhí)行除Node.js外的其它任務(wù),防止出現(xiàn)CPU的爭用。

我們曾經(jīng)犯過一個錯誤,在服務(wù)器上部署了兩個node.js應(yīng)用,然后每個應(yīng)用都開了N-1個進(jìn)程。結(jié)果,它們互相之間搶奪CPU,導(dǎo)致系統(tǒng)的負(fù)荷急升。雖然我們的服務(wù)器都是8核的機(jī)器,但仍然可以明顯地感覺到由上下文切換引起的性能開銷。

上下文切換是指CPU為了執(zhí)行其它任務(wù)而掛起當(dāng)前任務(wù)的現(xiàn)象。在切換時,內(nèi)核必須掛起當(dāng)前進(jìn)程的所有狀態(tài),然后裝載和執(zhí)行另一個進(jìn)程。為了解決這個問題,我們減少了每個應(yīng)用開啟的進(jìn)程數(shù),讓它們公平地分享CPU,結(jié)果系統(tǒng)負(fù)荷就降了下來:

請注意上圖,看系統(tǒng)負(fù)荷(藍(lán)線)是如何降到CPU核數(shù)(紅線)以下的。在其它服務(wù)器上,我們也看到了同樣的情況。既然總的工作量保持不變,那么上圖中的性能改善只能歸功于上下文切換的減少。

責(zé)任編輯:遺忘者 來源: TechTarget中國
相關(guān)推薦

2013-01-24 13:26:09

NginxNode.js高負(fù)載網(wǎng)絡(luò)

2022-09-04 15:54:10

Node.jsAPI技巧

2025-07-24 06:54:11

Node.jsCPU負(fù)載

2025-05-26 00:31:31

2013-11-01 09:34:56

Node.js技術(shù)

2015-03-10 10:59:18

Node.js開發(fā)指南基礎(chǔ)介紹

2011-11-01 10:30:36

Node.js

2011-09-08 13:46:14

node.js

2011-09-09 14:23:13

Node.js

2011-09-02 14:47:48

Node

2012-10-24 14:56:30

IBMdw

2011-11-10 08:55:00

Node.js

2019-07-09 14:50:15

Node.js前端工具

2021-12-25 22:29:57

Node.js 微任務(wù)處理事件循環(huán)

2014-02-19 16:28:53

Node.jsWeb工具

2024-09-25 08:04:58

2020-05-29 15:33:28

Node.js框架JavaScript

2013-03-28 14:54:36

2021-06-15 15:03:21

MongoDBNode.jsCRUD

2014-07-11 14:16:15

AbsurdJSExpress
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

亚洲国产精品小视频| 久久精品一区二区三区不卡 | 东京热av一区| 欧美激情网站| 国产精品天天摸av网| 岛国视频一区| 波多野结衣大片| 欧美人成网站| 亚洲性69xxxbbb| 黄色片子免费看| 成人直播视频| 亚洲自拍欧美精品| 先锋影音网一区| 东京干手机福利视频| 视频一区二区中文字幕| 欧美另类在线播放| 熟女少妇内射日韩亚洲| 99久久免费精品国产72精品九九| 色哟哟一区二区在线观看| 男人j进女人j| 国产高清免费av在线| 大陆成人av片| 成人性生交xxxxx网站| 影音先锋在线国产| 国色天香一区二区| 精品国产网站地址| 波多野结衣a v在线| 综合成人在线| 欧美一区二区三区性视频| 久久精品视频91| 91精品国产黑色瑜伽裤| 亚洲婷婷综合色高清在线| 久久久久成人精品免费播放动漫| av中文字幕观看| 久久99久久久久| 国产精品久久久久久久久免费看| 韩国av免费观看| 亚洲调教视频在线观看| 久久精品视频在线观看| 粉嫩精品久久99综合一区| 亚洲+变态+欧美+另类+精品| 欧美精品一区二区三区四区 | 久久亚洲私人国产精品va| 真实乱视频国产免费观看| 菁菁伊人国产精品| 精品少妇一区二区三区免费观看| 911福利视频| 欧美视频精品| 欧美日高清视频| 欧美女同在线观看| 国产精品久久久久久久久久齐齐| 色素色在线综合| 妞干网在线免费视频| 中文字幕人成乱码在线观看| 欧美日韩国产一区二区| 内射国产内射夫妻免费频道| 啊啊啊久久久| 福利精品视频在线| 日本三级中文字幕| 性欧美lx╳lx╳| 亚洲黄色成人网| 亚洲天堂av网站| 国产精品2023| 日韩精品黄色网| aaaaa一级片| 国产伦精品一区二区三区视频| 亚洲第一福利视频| 真人bbbbbbbbb毛片| 小说区图片区色综合区| 亚洲男人天堂网| 欧美性猛交xxxx乱| 91亚洲国产高清| 久久香蕉国产线看观看网| 国产精品嫩草影院俄罗斯| 在线中文一区| 欧美激情图片区| 国产免费av一区二区| 亚洲专区在线| 国产精品麻豆va在线播放| 91禁在线观看| 成人国产一区二区三区精品| 精品国产一区二区三区麻豆免费观看完整版| 色丁香婷婷综合久久| wwwwww.欧美系列| 污视频在线免费观看一区二区三区| 91在线高清| 亚洲欧美一区二区三区极速播放 | 欧洲美女7788成人免费视频| 波多野结衣一二区| 国产精品中文字幕日韩精品| 国产欧美日韩综合精品二区| 高清在线观看av| 亚洲六月丁香色婷婷综合久久 | 麻豆国产精品一区二区三区| 亚洲字幕在线观看| 青青久在线视频免费观看| 最新国产精品久久精品| 精品少妇人妻av免费久久洗澡| 日韩av免费| 精品日韩在线观看| 国产91丝袜美女在线播放| 欧美三区美女| 国产精品看片资源| 日本黄色免费视频| 国产精品初高中害羞小美女文| 日韩日韩日韩日韩日韩| 欧美一级做a| 精品无码久久久久久国产| 一区二区三区影视| 日韩电影在线看| 国产伦精品一区二区三区免| 国产黄大片在线观看画质优化| 婷婷久久综合九色综合伊人色| 九九九九九九九九| 国产成人一区| 久久青草福利网站| 超碰在线免费97| 99re亚洲国产精品| 久久av高潮av| www欧美在线观看| 亚洲人成电影在线| 国产又大又黑又粗免费视频| 国产一区二区精品久久| 欧美三级电影在线播放| 91破解版在线观看| 日韩精品一区二区三区swag| 伊人影院综合网| 美女久久一区| 久久天堂国产精品| 男人天堂视频在线观看| 欧美www视频| 无码人妻精品一区二区三区夜夜嗨| 日本色综合中文字幕| 免费成人看片网址| 免费看男女www网站入口在线| 日韩午夜激情视频| 中文字幕亚洲欧美日韩| 久久99蜜桃精品| 一级做a爰片久久| 国产a亚洲精品| 在线看欧美日韩| 日本成人一级片| 国产欧美日韩久久| 午夜视频在线瓜伦| 欧洲在线视频一区| 先锋影音av在线| 一区二区三区国产盗摄 | 国产超碰人人爽人人做人人爱| 国产精品69毛片高清亚洲| 亚洲一区二区三区免费观看| 成人涩涩视频| 国产综合婷婷| 国产日韩欧美自拍| 免费在线毛片网站| 538在线一区二区精品国产| 女性裸体视频网站| 国产在线播精品第三| 中文字幕免费在线不卡| 国产欧美日韩电影| 九九热99久久久国产盗摄| www.国产视频| 天天综合网天天综合色| 日韩乱码人妻无码中文字幕久久| 久久性色av| 亚洲mv在线看| 国产精品日本一区二区三区在线 | 亚洲自拍三区| 欧美影院视频| 51精品在线观看| 九色蝌蚪在线| 欧美裸体一区二区三区| 欧美xxxx黑人xyx性爽| 成人免费av网站| 日韩在线一级片| 日韩av在线播放网址| 91久久在线观看| 国产精品国精产品一二| 亚洲人成网站777色婷婷| 中文字幕一区2区3区| 国产亚洲成aⅴ人片在线观看| 中文字幕在线综合| 黄色成人91| 日本不卡免费新一二三区| 日韩国产大片| 97色在线观看免费视频| 91福利在线视频| 日韩免费观看高清完整版 | 美女视频一区免费观看| 国产系列第一页| 久久97精品| 91精品国产综合久久久久久蜜臀 | 日韩欧美亚洲一二三区| 激情高潮到大叫狂喷水| 国产成人精品www牛牛影视| 黄色片久久久久| 自拍偷拍欧美专区| 热re99久久精品国产99热| 日本一区二区三区播放| 日韩av色综合| 国产桃色电影在线播放| 日韩小视频网址| 蜜桃视频在线播放| 精品免费国产一区二区三区四区| 伊人成年综合网| 亚洲妇熟xx妇色黄| 在线观看黄网址| 久久久精品国产免费观看同学| 中文字幕一二三| 免费人成精品欧美精品| 俄罗斯av网站| 亚洲无线视频| 在线免费观看成人| 国产成人ay| 好吊妞www.84com只有这里才有精品 | 男男受被啪到高潮自述| 日韩高清不卡一区| 无码专区aaaaaa免费视频| 欧美成熟视频| 偷拍亚洲色图| 亚洲精品亚洲人成人网| 日本高清视频精品| 怡红院在线播放| 色系列之999| 日韩精品系列| 亚洲国产精品久久久久秋霞蜜臀| 国产精品久久综合青草亚洲AV| 日韩欧美有码在线| 久久香蕉精品视频| 亚洲色图视频网| 国产精品一区二区亚洲| 久久久精品国产免大香伊| 中国极品少妇videossexhd| 国产高清成人在线| 一级日本黄色片| 国产一区二区女| 午夜大片在线观看| 久久www免费人成看片高清| 午夜激情福利在线| 亚洲欧美日韩视频二区| 日本韩国欧美在线观看| 亚洲美女色禁图| 成人免费在线网| 影音先锋一区| 国产综合中文字幕| 99在线观看免费视频精品观看| 成年人看的毛片| 在线亚洲一区| 人妻少妇被粗大爽9797pw| 亚洲中字在线| 欧美精品成人网| 免费观看成人av| 九色porny自拍| 国产一区二区0| 色悠悠在线视频| 99热在这里有精品免费| 中文字幕一区二区三区人妻| 91捆绑美女网站| 手机看片福利视频| 国产精品国产馆在线真实露脸| www.涩涩爱| 亚洲人成精品久久久久久| 午夜免费激情视频| 亚洲一区二区三区在线| 日本一级片免费看| 色视频欧美一区二区三区| 免费在线不卡av| 欧美福利视频一区| 亚洲精品成av人片天堂无码| 亚洲黄色片网站| 91高清在线视频| 色综合久久久久久中文网| av影院在线| 日韩免费观看高清| 午夜不卡一区| 国产一区二区中文字幕免费看| 偷拍亚洲色图| 一区二区三区日韩视频| 精品91视频| 538在线视频观看| 国产一区二区三区四区五区入口| 亚洲视频 中文字幕| 久久久久久免费毛片精品| 亚洲欧美日韩第一页| 一区二区三区波多野结衣在线观看 | 亚洲一区二区av| 国产在线一区二| 色乱码一区二区三区网站| 国产黄色激情视频| 久久蜜桃精品| www.色.com| 久久久精品黄色| 欧美另类视频在线观看| 欧美视频在线观看 亚洲欧| 一级黄在线观看| 日韩电影中文字幕在线观看| 欧美性天天影视| 26uuu国产精品视频| 91麻豆精品国产综合久久久 | 999热视频| 欧美男同视频网| 国产在线视频综合| 免费人成黄页网站在线一区二区| 国产精品入口麻豆| 中文字幕亚洲一区二区va在线| 人人干人人干人人干| 91精品婷婷国产综合久久| 毛片在线播放网址| 欧美激情视频三区| 欧美男男gaygay1069| 欧美下载看逼逼| 亚洲国产一区二区三区a毛片 | 人人爽人人爽人人片av| 日韩欧美区一区二| 日本最新在线视频| 国产成人在线亚洲欧美| 加勒比中文字幕精品| 日本老太婆做爰视频| 老司机午夜精品| 97人妻精品一区二区免费| 性久久久久久久久久久久| 国产丰满美女做爰| www.久久久久| 成人在线不卡| 色播五月综合| 久久久久免费| 性少妇bbw张开| 午夜av区久久| 天天干天天摸天天操| 欧美俄罗斯乱妇| 日韩中文字幕一区二区高清99| 亚洲一区bb| 久久激情五月激情| 蜜桃久久精品成人无码av| 色猫猫国产区一区二在线视频| 午夜视频在线免费播放| 久久免费观看视频| 天堂久久av| 中文字幕人妻熟女人妻洋洋| 国产精品夜夜嗨| 五月天丁香激情| 日韩欧美高清dvd碟片| 2024最新电影在线免费观看| 91精品中文在线| 自由日本语亚洲人高潮| 黑人巨大猛交丰满少妇| 亚洲精品乱码久久久久久| 性生活免费网站| 九九热r在线视频精品| 亚洲91网站| 久久99久久久久久| 成人手机电影网| 日韩黄色三级视频| 日韩理论片久久| 三上悠亚国产精品一区二区三区| 欧美日韩国产高清视频| 日韩高清在线一区| 蜜桃视频最新网址| 日韩免费福利电影在线观看| 免费毛片在线看片免费丝瓜视频| 国产99视频精品免费视频36| 激情综合自拍| 精品人妻少妇嫩草av无码| 色综合久久久久综合体桃花网| 邻居大乳一区二区三区| 国产精品日韩一区| 91亚洲一区| 色综合久久久无码中文字幕波多| 一区二区三区免费网站| 污污网站在线免费观看| 国产精品福利无圣光在线一区| 欧美电影三区| 国内精品免费视频| 欧美日韩亚洲天堂| 北条麻妃在线| 91黄在线观看| 先锋影音久久久| 国产极品视频在线观看| 日韩精品一区二区在线| 涩涩视频网站在线观看| 亚洲精品成人a8198a| 国产成人在线免费| 日韩精品1区2区| 日韩有码在线视频| 欧美人妖视频| gogogo高清免费观看在线视频| 一区二区三区欧美| 国产一级在线| 国产精品一区二区免费看| 久久久精品午夜少妇| 久久高清内射无套| 亚洲精品日韩丝袜精品| 成人亚洲精品| 成人在线看视频| 一区二区三区欧美日韩| 黄色片在线看| 国产精品区一区二区三在线播放 | 成人激情视频网| 亚洲专区免费| 久久久久久久久久久久久久免费看 | 亚洲成人精品视频在线观看|