nginx中worker_processes、worker_cpu_affinity、worker_rlimit_nofile、worker_connections配置項的含義
描述nginx中worker_processes、worker_cpu_affinity、worker_rlimit_nofile、worker_connections配置項的含義
1.全局配置
1).worker_processes
2).worker_cpu_affinity
3).worker_rlimit_nofile
2.event配置
1).worker_connections
1.全局配置
1).worker_processes
啟動Nginx工作進程的數(shù)量,一般設為和CPU核心數(shù)相同,
可以設置為worker_processes ##(具體的磁盤CPU核心數(shù))
也可以設置為worker_processes auto(根據(jù)cpu核數(shù)自動設置)
2).worker_cpu_affinity
將Nginx工作進程綁定到指定的CPU核心,默認Nginx是不進行進程綁定的,綁定并不是意味著當前nginx進程獨占以一核心CPU,但是可以保證此進程不會運行在其他核心上,這就極大減少了nginx的工作進程在不同的cpu核心上的來回跳轉,減少了CPU對進程的資源分配與回收以及內存管理等,因此可以有效的提升nginx服務器的性能。關鍵是避免不同的CPU緩存失效。
CPU MASK: 00000001:0號CPU
00000010:1號CPU
10000000:7號CPU
#示例:
worker_cpu_affinity 0001 0010 0100 1000;第0號---第3號CPU
#示例,虛擬機設置8顆CPU,worker進程為4,4個worker進程分別綁定在1.3.5.7號cpu上。
worker_processes 4;
worker_cpu_affinity 00000010 00001000 00100000 10000000;
[root@centos8 ~]# ps axo pid,cmd,psr | grep nginx
31093 nginx: master process /apps 1
34474 nginx: worker process 1
34475 nginx: worker process 3
34476 nginx: worker process 5
34477 nginx: worker process 7
35751 grep nginx
3).worker_rlimit_nofile
所有worker進程能打開的文件數(shù)量上限,包括:Nginx的所有連接(例如與代理服務器的連接等),而不僅僅是與客戶端的連接,另一個考慮因素是實際的并發(fā)連接數(shù)不能超過系統(tǒng)級別的最大打開文件數(shù)的限制.最好與ulimit -n 或者limits.conf的值保持一致,ulimit -n 能顯示(ulimit -a 顯示所有),每個進程最多打開文件數(shù)個數(shù),默認為1024,如果不調整,設置的65536也不起作用,這里會限制,可以通過修改pam文件進行修改,
[root@centos8:~]#
vim /apps/nginx/conf/nginx.conf
worker_rlimit_nofile 65536;
[root@centos8:/apps/nginx/html]#
vim /etc/security/limits.conf
添加
* soft nofile 1000000
* hard nofile 1000000
[root@centos8:/apps/nginx/html]# #內核參數(shù),只能reboot生效
reboot
[root@centos8:~]#
ulimit -n
1000000
2.event配置
1).worker_connections
設置單個工作進程(worker進程)的最大并發(fā)連接數(shù)。
例如:worker_connections 65536;
原文鏈接:
本文內容根據(jù)網(wǎng)絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉載請注明,如有侵權,聯(lián)系刪除。