描述nginx中worker_processes、worker_cpu_affinity、worker_rlimit_nofile、worker_connections配置项的含义
- 1.全局配置
- 1).worker_processes
- 2).worker_cpu_affinity
- 3).worker_rlimit_nofile
- 配置
- 1).worker_connections
1.全局配置
1).worker_processes
启动Nginx工作进程的数量,一般设为和CPU核心数相同,
可以设置为worker_processes ##(具体的磁盘CPU核心数)
也可以设置为worker_processes auto(根据cpu核数自动设置)
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进程能打开的文件数量上限,包括:Nginx的所有连接(例如与代理服务器的连接等),而不仅仅是与客户端的连接,另一个考虑因素是实际的并发连接数不能超过系统级别的最大打开文件数的限制.最好与ulimit -n 或者的值保持一致,ulimit -n 能显示(ulimit -a 显示所有),每个进程最多打开文件数个数,默认为1024,如果不调整,设置的65536也不起作用,这里会限制,可以通过修改pam文件进行修改,
[root@centos8:~]#
vim /apps/nginx/conf/
worker_rlimit_nofile 65536;
[root@centos8:/apps/nginx/html]#
vim /etc/security/
添加
* soft nofile 1000000
* hard nofile 1000000
[root@centos8:/apps/nginx/html]# #内核参数,只能reboot生效
reboot
[root@centos8:~]#
ulimit -n
1000000
配置
1).worker_connections
设置单个工作进程(worker进程)的最大并发连接数。
例如:worker_connections 65536;