精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

亚洲男女毛片无遮挡| 国产老女人精品毛片久久| 国产亚洲精品综合一区91| 岛国毛片在线播放| 爱情岛论坛亚洲品质自拍视频网站| 99热精品国产| 国产综合在线观看视频| 日本免费一二三区| 99视频精品全国免费| 亚洲国产99精品国自产| 成人性生交免费看| 色多多在线观看| 亚洲欧美国产三级| 蜜桃传媒一区二区| 国产v在线观看| 日本女人一区二区三区| 国模吧一区二区| www色aa色aawww| 国产欧美日韩免费观看| 亚洲福利视频在线| 一级全黄裸体片| 亚洲人成777| 欧美在线观看18| 一女被多男玩喷潮视频| sm国产在线调教视频| 亚洲国产激情av| 裸体丰满少妇做受久久99精品| a视频免费在线观看| 奇米精品一区二区三区在线观看| …久久精品99久久香蕉国产| 欧美精品久久久久性色| 91久久高清国语自产拍| 一区二区三区在线播放欧美| 精品无码在线视频| 狠狠一区二区三区| 日韩精品一区二区三区在线播放| 日本黄色的视频| 69堂精品视频在线播放| 日韩欧美极品在线观看| 国产九九九九九| 人人澡人人添人人爽一区二区| 国产精品国产三级国产专播品爱网| 欧洲在线视频一区| 麻豆导航在线观看| 26uuu久久综合| 久久资源av| 亚洲av成人无码网天堂| av电影天堂一区二区在线观看| 国产高清精品一区二区| 欧美自拍第一页| 成人h版在线观看| 国产伦精品一区二区三区四区视频| 性一交一乱一精一晶| 国产精品一区二区免费不卡| 亚洲在线免费视频| 亚洲不卡免费视频| 成人黄色在线网站| 久久99精品国产一区二区三区| 五月婷中文字幕| 99riav一区二区三区| 久久精品ww人人做人人爽| 日本免费不卡| 国产午夜精品久久| 一区二区在线观| av网站网址在线观看| 亚洲国产精品久久久久秋霞影院| 一卡二卡三卡视频| av资源亚洲| 欧美曰成人黄网| 国产精品999.| 日韩成人动漫在线观看| 亚洲欧美国产精品| 国产高清视频免费在线观看| 欧美韩日精品| 57pao精品| 国产精品成人无码| 国产一区美女在线| 精品无人区一区二区三区竹菊| 天堂av在线免费观看| 欧美国产精品中文字幕| 992tv成人免费观看| 超碰在线网站| 在线影视一区二区三区| 黄色a级三级三级三级| 九九热hot精品视频在线播放| 亚洲天堂男人的天堂| 天天色影综合网| 影音先锋久久精品| 国产精品最新在线观看| 亚洲免费成人网| 国产欧美一区二区三区网站| 最近免费观看高清韩国日本大全| a级片免费在线观看| 欧美在线短视频| 少妇伦子伦精品无吗| 自拍偷拍一区| 久久99久久亚洲国产| 潘金莲一级淫片aaaaaa播放| 国产伦精品一区二区三区免费| 久久久久成人精品免费播放动漫| 99re在线视频| 午夜影院久久久| 亚洲高清免费在线观看| 久久丝袜视频| 久久的精品视频| 色一情一乱一伦| 国产盗摄一区二区三区| 日韩视频在线播放| 九九精品调教| 欧美图片一区二区三区| 精品中文字幕在线播放 | 日韩欧美视频一区| 最近中文字幕免费视频| 亚洲小说欧美另类婷婷| 91久久久亚洲精品| 国产一二在线观看| 午夜精品一区二区三区免费视频| 99999精品| 日韩欧美国产精品综合嫩v| 欧美亚洲日本网站| 国产综合视频在线| 亚洲精品免费在线| 中文字幕中文在线| 日产精品一区二区| 国产精品wwww| 欧美香蕉爽爽人人爽| 亚洲高清一区二区三区| 中文国产在线观看| 日韩电影二区| 国产精品黄色av| 欧美理论在线观看| 天天色天天操综合| 免费黄色三级网站| 日韩视频免费| 国产伦精品一区二区三区在线| 色av手机在线| 日韩欧美亚洲国产另类| 2021亚洲天堂| 国产白丝精品91爽爽久久| 好吊色这里只有精品| 国产精品亚洲一区二区在线观看 | 日韩一区二区三区四区| 久久高清内射无套| 紧缚捆绑精品一区二区| 精品91一区二区三区| 91精品国产色综合久久不卡粉嫩| 日韩最新在线视频| 99热这里是精品| 亚洲三级在线播放| 9191在线视频| 亚洲日韩视频| 精品国产一区二区三区麻豆免费观看完整版 | 亚洲女同一区| 91文字幕巨乱亚洲香蕉| 欧美hdxxxx| 欧美精品一区二区久久婷婷| 日韩av在线播放观看| 99久久国产综合精品女不卡| 国产极品粉嫩福利姬萌白酱| 亚洲宅男网av| 国产精品久久久久久久久久三级 | 亚洲综合色噜噜狠狠| 免费看三级黄色片| 99精品视频网| 日本电影一区二区三区| 亚洲欧洲二区| 韩国精品美女www爽爽爽视频| 午夜视频福利在线| 精品视频一区三区九区| 东方av正在进入| 不卡一区二区中文字幕| wwwxxx黄色片| 欧美大黑bbbbbbbbb在线| av日韩中文字幕| 成人免费直播| 日韩亚洲精品电影| 成人毛片视频免费看| 欧美性猛交xxxx免费看久久久| 变态另类ts人妖一区二区| 久久99久久久久| 日本xxxxxxxxxx75| 欧美综合另类| 99在线视频播放| 欧美色999| 欧美丰满少妇xxxxx| 噜噜噜噜噜在线视频| 欧美一区二区在线视频| 天天爽夜夜爽夜夜爽精品| 国产精品久久久久久久久免费桃花 | 久久久加勒比| 欧美日本精品在线| 黄色美女网站在线观看| 日韩午夜中文字幕| 亚洲av无码乱码国产精品fc2| 一区二区三区影院| 日韩免费成人av| 成人免费高清视频在线观看| 手机在线看福利| 亚洲精品婷婷| 手机成人av在线| 亚洲动漫精品| 成人资源视频网站免费| jizz欧美| 欧美有码在线观看视频| 精精国产xxxx视频在线中文版| 中文字幕视频一区二区在线有码| 丰满岳乱妇国产精品一区| 欧美日韩一级视频| 台湾佬中文在线| 亚洲一区二区在线播放相泽 | 黄色片在线免费观看| 精品国内二区三区| 国产精品国产一区二区三区四区| 欧美日韩中文字幕综合视频| 久久av高潮av无码av喷吹| 国产精品美女久久久久久久| 超碰97人人干| 97se亚洲国产综合自在线| 国产吃瓜黑料一区二区| 精品一区二区三区免费播放| 成人性生生活性生交12| 免费亚洲网站| 国产69精品久久久久久久| 欧美成人有码| av动漫免费观看| 日韩免费高清| 午夜精品亚洲一区二区三区嫩草 | 黄色国产小视频| 夜夜夜久久久| 精品无码一区二区三区爱欲| 欧美激情四色| 波多野结衣 作品| 婷婷丁香综合| 在线丝袜欧美日韩制服| 日本久久精品| 性刺激综合网| 日韩精品免费一区二区三区| 视频在线99| 日韩欧美综合| 亚洲一区在线免费| 亚洲精品99| 国产视频在线观看网站| 欧美日韩一区二区国产| 日韩一区二区高清视频| 亚洲激情av| 日韩精品视频一区二区在线观看| 香蕉亚洲视频| 激情网站五月天| 麻豆精品一区二区三区| 日本中文字幕二区| 国产在线播精品第三| 真实乱偷全部视频| 成人妖精视频yjsp地址| 中文字幕 亚洲一区| 久久综合久久久久88| 久久久久久国产免费a片| 国产精品欧美极品| 69av视频在线| 红桃av永久久久| 无码视频在线观看| 欧美色视频在线观看| av网站在线观看免费| 亚洲成年人影院在线| 欧美亚洲日本| 久久精品国产视频| 丁香花在线电影小说观看| 人九九综合九九宗合| 国产一区高清| 国模精品一区二区三区| 国产一区二区精品久| 中文字幕欧美人与畜| 樱桃成人精品视频在线播放| 欧美丰满熟妇xxxxx| 国产在线麻豆精品观看| 亚洲av永久无码精品| 欧美极品aⅴ影院| 曰本女人与公拘交酡| 五月天亚洲婷婷| 中文在线免费观看| 欧美哺乳videos| 免费av在线电影| 久久资源免费视频| 九色porny视频在线观看| 国产精品揄拍500视频| 国产成人精品福利| 色综合久久av| 日韩视频二区| 91丝袜超薄交口足| 久久久99久久| 国产亚洲自拍av| 精品视频一区二区三区免费| 亚洲欧美另类视频| 自拍亚洲一区欧美另类| 欧美亚洲日本精品| 91亚色免费| 欧美电影《轻佻寡妇》| 熟女少妇在线视频播放| 国产在线精品一区在线观看麻豆| 亚洲观看黄色网| 亚洲伦在线观看| 国产美女www爽爽爽| 日韩精品福利网站| 黑人玩欧美人三根一起进| 国产精品美女www| 亚洲毛片免费看| 国产精品久久久久久久乖乖| 激情深爱一区二区| 国产成人一区二区在线观看| 偷拍一区二区三区| 精品黑人一区二区三区在线观看| 伊人精品在线观看| 中文字幕这里只有精品| 国产日本一区二区三区| 亚洲欧美一级二级三级| 亚洲欧美视频二区| 国产欧美日韩精品一区| 午夜婷婷在线观看| 欧美变态tickle挠乳网站| 男人天堂久久久| 国产在线观看精品| 成人在线免费观看91| 99re在线视频免费观看| 久久婷婷国产综合国色天香 | 欧美日本一道本在线视频| 男生女生差差差的视频在线观看| 久久免费观看视频| 99re8这里有精品热视频8在线 | 日韩少妇视频| 亚洲japanese制服美女| 91综合久久一区二区| 自拍偷拍21p| 日本一区二区动态图| 波多野结衣黄色网址| 一色桃子一区二区| 91九色综合| 亚洲第一综合| 麻豆成人久久精品二区三区红| 亚洲色图日韩精品| 欧美人xxxx| 免费观看在线午夜影视| 亚洲一区二区免费在线| 亚洲国产精品久久久久蝴蝶传媒| 99视频在线观看视频| 亚洲美女精品一区| 丰满肉肉bbwwbbww| 97精品在线视频| 自拍自偷一区二区三区| 久久久久久三级| 国产精品视频一二| 国产精品毛片一区视频播| 欧美成人免费大片| xxxx日韩| 欧美日韩第二页| 国产精品进线69影院| a在线观看免费| 亚洲91av视频| 国产精品一区二区99| 天天干天天色天天干| 亚洲中国最大av网站| 午夜福利理论片在线观看| 国产精品成人久久久久| 天天操夜夜操国产精品| 先锋资源在线视频| 精品国产精品自拍| 97电影在线| **亚洲第一综合导航网站| 亚洲电影成人| 亚洲色图欧美色| 日韩欧美国产三级| 波多视频一区| 亚洲一区三区在线观看| 成人禁用看黄a在线| 国产第一页在线观看| 久久久精品久久久| 色橹橹欧美在线观看视频高清| 亚洲欧美另类动漫| 亚洲宅男天堂在线观看无病毒| 欧美日本网站| 91香蕉电影院| 免费日韩视频| 日韩在线观看视频一区二区| 日韩成人av在线播放| 九七影院97影院理论片久久| 国产黄色片免费在线观看| 国产欧美日韩在线视频| 精品人妻一区二区三区三区四区| 51视频国产精品一区二区| 91精品一区二区三区综合| 国产伦精品一区二区三区妓女 | 青青视频在线观| 91精品综合久久久久久五月天| 99精品视频免费观看| 欧美做爰啪啪xxxⅹ性| 国产婷婷97碰碰久久人人蜜臀 | 久久99国内精品| 国产成人亚洲欧洲在线| 久青草国产97香蕉在线视频| 久久综合影院| 中文字幕在线视频播放| 欧美福利视频导航|