針對CPU的nginx配置優化


針對CPU的nginx配置優化

處理器已經進入了多核時代,多核的意思是一個處理器集成兩個或者多個計算引擎。一枚多核處理器可以承載多枚內核。將每個內核作為分立的邏輯處理器,通過多喝個內核之間的划分,在特定的周期執行更多的任務,提高並行處理能力。

在Nginx配置中,有兩個關於進程的指令,worker_processes 和worker_cpu_affinity,想必大家對worker_processes 都熟悉。 worker_processes 1 開啟一個進程來處理。

下面 ,我來講解一下兩個指令

一、worker_processes

worker_processes指令是用來設計Nginx進程數,官方默認設為1,賦值太多了,將會對系統IO影響效率,降低Nginx服務器性能。但是為了讓多核CPU能夠更好的處理並行任務,我們可以講該值設置大一些,最好這個值是機器CPU的倍數,並不是越大越好。
如針對雙核CPU 將他設置為2或者4 , 我這里的機器是4核CPU,所以我講這個值設置為4

worker_processes 4;

二、worker_cpu_affinity

worker_cpu_affinity指令用來分配每個進程的CPU的工作內核
這個指定設置有點麻煩。首先,我們來看一下,在我機器4核,我是怎么設置的。

如果在筆者電腦上設置worker_processes 4 ;

筆者的電腦設置

worker_processes 4 ; 我四核開啟了四個進程
worker_cpu_affinity 0001 0010 0100 1000; 
//我們CPU 就是四核 就是四組值,0是不使用,1是使用。 這樣每一個進程都有一個 cpu內核了。
{解析 四組二進制值分別對應着四個進程,第一個進程對應的是0001 第二個進程對應的是0010,表示第二個進程計算器內核,第三個進程對應的是0100,表示第三個計算機內核,第四個進程對應1000}

內存對應圖

如果在筆者電腦上設置worker_processes 8 ;

筆者的電腦設置

worker_processes 8 ; 
worker_cpu_affinity  0001 0010 0100 1000 0001 0010 0100 1000; 

如果你的電腦CPU 是雙核,但是你設置為 worker_processes 設置為4
下面是配置

worker_processes 4 ;

worker_cpu_affinity 01 10 01 10 ;

設置完畢 重啟一下nginx,就能測試出效果


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM