整理一些配置调优项:
1. worker_processes。
用途:调整worker进程的数量。
建议值:调整为服务器的CPU核数。
原理:Apache的每个进程同一时间只能处理一个请求,所以要尽量多配置进程数。而Nginix与Apache不同,每个worker都可以并发处理多个请求,所以worker数量无需更多,与CPU核数一致即可发挥最大性能。
示例:
worker_processes 8;
2.daemon
用途:使用以守护进程方式启动。默认为on
建议值: on
原理:只有当需要进程调试时,避免fork出子进程时才会调整为off
示例:
daemon on;
3.master_process
用途:是否以master/worker方式工作。默认为on
建议值: on
原理:只有当需要进程调试时,避免fork出子进程时才会调整为off
示例:
master_process on;
4.error_log /path/file level
用途:error日志的设置
建议值:日志名按时间区分。level生产环境设置为error
原理:
示例:
error_log logs/error.log error;
5. user username [groupname]
用途:指定worker进程的启动账号和组
6.worker_cpu_affinity cpumask [cpumask]
用途:绑定worker进程到指定的cpu内核,该参数仅对Linux操作系统有效
原理:
示例
worker_processes 4;
worker_cpu_affinity 1000 0100 0010 0001;
7.worker_priority nice
用途:设定worker进程的优先级,默认为0
原理:优先级(nice)值越低,分到的时间片越大。优先级高,会限制性,并占用更多的系统资源。
示例:
worker_priority -1;
8.accept_mutext [on|off]
用途:Nginx的负载均衡锁;默认开启。
原理:该锁可以让Nginx的多个worker进程轮流的、序列化的与新客户端建立TCP连接,以此实现worker进程间的请求数尽量接近。关闭可以让TCP建立连接更快,但不建议关闭
示例:
accept_mutext on;
9.accept_mutex_delay Nms
用途:使用accept锁后,定义worker进程取锁失败后重试等待的时间。默认500ms
示例:
accept_mutex_delay 500ms;
10. multi_accept [on|off]
用途:批量建立新连接。默认为off。
示例:
multi_accept off;
11. use [poll|select|epoll]
用途:选择事件模型,nginx默认会自动选择最合适的事件模型。最可能的是epoll
示例:
use epoll;
12. worker_connections number
用途:定义每个worker可以同时处理的最大连接数。
示例:
worker_connections 1000;