优化性能的配置项
worker进程数
语法: worker_processes number; 默认: worker_processes 1;
一般配置为与主机的CPU核数相等。并且使用下面的worker_cpu_affinity配置来绑定CPU内核
worker进程绑定到指定CPU核心
语法: worker_cpu_affinity cpumask [cpumask...]
因为Linux内核都是抢占式的。当worker进程都比较繁忙时,会抢占同一个cpu,会造成同步问题。
例如:主机有两颗CPU,配置如下
worker_processes 2; worker_cpu_affinity 10 01;
SSL硬件加速
语法: ssl_engine device;
如果服务器上有SSL硬件加速设备, 那么就可以进行配置以加快SSL协议的处理速度。
可以使用OpenSSL提供的命令来查看是否有SSL硬件加速设备:
[root@test ~]# openssl engine -t
系统调用gettimeofday的执行频率
语法: timer_resolution t;
一般不配置,除非是想要日志文件中打印的时间非常精确才配置
Nginx worker进程优先级设置
语法: worker_priority nice; 默认: worker_priority 0;
用于设置worker进程的nice值提高优先级。
Linux系统按照所有进程的优先级来决定哪个进程先执行。进程所分配的CPU时间片大小也与进程的优先级有关,优先级越高,进程分配到的时间片越大。优先级高的进程占用更多的系统资源。
Linux系统有两种优先级:
静态优先级:Nice值是进程的静态优先级,取值范围是-20 ~ 19,-20是最高优先级,19是最低优先级,内核进程的nice值通常为-5。其他程序的优先级不应该比-5还小
动态优先级:内核根据进程的执行情况做出的动态调整