Nginx中如何設(shè)置worker_processes、worker_connections更合適?
worker_processes,工作進(jìn)程數(shù)
1.默認(rèn):worker_processes: 1
2.調(diào)大:worker_processes: CPU核心數(shù),(雙核4線程,可以設(shè)置為4)
worker_connections,單個(gè)工作進(jìn)程可以允許同時(shí)建立外部連接的數(shù)量
數(shù)字越大,能同時(shí)處理的連接越多
1.默認(rèn):worker_connections: 1024
2.調(diào)大:worker_connections: 100000,(調(diào)大到10萬(wàn)連接)
worker_connections解析
1.connections不是隨便設(shè)置的,而是與兩個(gè)指標(biāo)有重要關(guān)聯(lián),一是內(nèi)存,二是操作系統(tǒng)級(jí)別的“進(jìn)程最大可打開文件數(shù)”。
2.內(nèi)存:每個(gè)連接數(shù)分別對(duì)應(yīng)一個(gè)read_event、一個(gè)write_event事件,一個(gè)連接數(shù)大概占用232字節(jié),2個(gè)事件總占用96字節(jié),那么一個(gè)連接總共占用328字節(jié),通過(guò)數(shù)學(xué)公式可以算出100000個(gè)連接數(shù)大概會(huì)占用 31M = 100000 * 328 / 1024 / 1024,當(dāng)然這只是nginx啟動(dòng)時(shí),connections連接數(shù)所占用的nginx。
3.進(jìn)程最大可打開文件數(shù):進(jìn)程最大可打開文件數(shù)受限于操作系統(tǒng),可通過(guò) ulimit -n 命令查詢,以前是1024,現(xiàn)在是65535,
worker_processes 2;
worker_rlimit_nofile 65535;
#pid logs/nginx.pid;
events {
worker_connections 65535;
}
nginx提供了worker_rlimit_nofile指令,這是除了ulimit的一種設(shè)置可用的描述符的方式。 該指令與使用ulimit對(duì)用戶的設(shè)置是同樣的效果。此指令的值將覆蓋ulimit的值,如:worker_rlimit_nofile 20960;
備注:
設(shè)置ulimits:ulimit -SHn 65535
原文鏈接:
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。