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