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;
        ...
    }
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM