Nginx优化:CPU篇

 

CPU

1.worker进程数量应当等于cpu核心数
配置语法:worker_processes number | auto;
比如:worker_processes auto;
配置位置:main

2.worker进程绑定cpu
配置语法:worker_cpu_affinity cpumask 1000 0100 0010 0001; # 4核为例
默认配置:worker_cpu_affinity auto;
配置位置:mian

2.停止系统上其他耗资源的非Nginx进程

3.减少主动切换,提升优先级占用cpu更长的时间
Nice静态优先级:-20 -- 19,尽量小,比如-20 ;
Priority动态优先级:0-139;
配置语法:worker_priority number;
默认配置:worker_priority -20;
配置位置:main

4.减少被动切换,worker进程尽量使用非阻塞调用,别使用阻塞调用主动让出cpu
nginx lua的使用时,应该注意严禁使用lua自带的一些库,严禁使用会造成阻塞的库,尽量使用 lua-resty-* 的库,这些是openresty的相关库,是经过验证的。

5.延迟处理连接:当与客户端建立连接后,不会立即激活worker进程去处理连接

server {
        listen 80 deferred;
        return 200 "OK\n";
}

6.为了防止惊群问题,新版本的Nginx内核(3.9)会使用reuseport。在内核中实现了负载均衡,使用后,如果你再次使用top命令查看,你会发现worker进程之间占用cpu的time会均衡。

http {
    server {
        listen 80 reuseport;
        ...
    }
}

 

posted @ 2020-09-14 20:03  -零  阅读(1542)  评论(0编辑  收藏  举报