nginx關(guān)鍵配置項(xiàng)worker_processes、worker_connections設(shè)置多少合適?
一、worker_processes、worker_connections設(shè)置多少合適?
worker_processes與worker_connections 設(shè)置好合適大小可以提高nginx處理性能,所以非常重要。
原作者的話
As a general rule you need the only worker with large number of
worker_connections, say 10,000 or 20,000.
However, if nginx does CPU-intensive work as SSL or gzipping and
you have 2 or more CPU, then you may set worker_processes to be equal
to CPU number.
Besides, if you serve many static files and the total size of the files
is bigger than memory, then you may increase worker_processes to
utilize a full disk bandwidth.
Igor Sysoev
翻譯
一般一個(gè)進(jìn)程足夠了,你可以把連接數(shù)設(shè)得很大。如果有SSL、gzip這些比較消耗CPU的工作,而且是多核CPU的話,可以設(shè)為和CPU的數(shù)量一樣?;蛘咭幚砗芏嗪芏嗟男∥募?,而且文件總大小比內(nèi)存大很多的時(shí)候,也可以把進(jìn)程數(shù)增加,以充分利用IO帶寬(主要似乎是IO操作有block)。
二、worker_processes,工作進(jìn)程數(shù)
默認(rèn):worker_processes: 1
調(diào)大:worker_processes: CPU核心數(shù),(雙核4線程,可以設(shè)置為4)
三、worker_connections,單個(gè)工作進(jìn)程(worker)可以允許同時(shí)建立外部連接的數(shù)量
數(shù)字越大,能同時(shí)處理的連接越多
默認(rèn):worker_connections: 1024
調(diào)大:worker_connections: 100000,(調(diào)大到10萬(wàn)連接)
三、如何配置數(shù)值大小
系統(tǒng)的最大打開(kāi)文件數(shù)>= worker_connections*worker_process
根據(jù)系統(tǒng)的最大打開(kāi)文件數(shù)來(lái)調(diào)整,worker_connections進(jìn)程連接數(shù)量要小于等于系統(tǒng)的最大打開(kāi)文件數(shù),worker_connections進(jìn)程連接數(shù)量真實(shí)數(shù)量= worker_connections*worker_process
查看系統(tǒng)的最大打開(kāi)文件數(shù)
[root@yhg-server ~]# ulimit -a|grep “open files”
open files (-n) 65535
四、在主配置文件nginx.conf中配置
user root;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
工作進(jìn)程數(shù)(我的服務(wù)器是2核,所以配置2)
worker_processes 2;
配置Nginx worker進(jìn)程最大打開(kāi)文件數(shù)
worker_rlimit_nofile 65535;
events {
單個(gè)進(jìn)程允許的客戶端最大連接數(shù)(65535/2)
worker_connections 32000;
}
五、max_clients
從用戶的角度,http 1.1協(xié)議下,由于瀏覽器默認(rèn)使用兩個(gè)并發(fā)連接,因此計(jì)算方法:
nginx作為http服務(wù)器的時(shí)候:
max_clients = worker_processes * worker_connections/2
nginx作為反向代理服務(wù)器的時(shí)候:
max_clients = worker_processes * worker_connections/4
六、CPU相關(guān)信息查看
物理CPU個(gè)數(shù)
cat /proc/cpuinfo | grep “physical id” | sort | uniq | wc -l
邏輯CPU個(gè)數(shù):(核數(shù))
cat /proc/cpuinfo | grep “processor” | wc -l
每個(gè)物理CPU中Core的個(gè)數(shù):
cat /proc/cpuinfo | grep “cpu cores” | wc -l
查看CPU型號(hào)
cat /proc/cpuinfo | grep ‘model name’ |uniq
原文鏈接:
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

請(qǐng)問(wèn)如何根據(jù)系統(tǒng)的最大打開(kāi)文件數(shù)調(diào)整nginx的worker_connections和worker_processes設(shè)置?