Nginx性能優化


一、性能優化相關配置:

(1)設置進程cpu的個數。

worker_process #;worker進程的個數;通常應該略少於CPU物理核心數。

(2)綁定物理cpu。

worker_cpu_affinity  00000001 00000010 00000100

(3)減少計時器解析度的值<間隔>。

timer_resolution 間隔;可減少gettimeofday()系統調用的次數;

(4)調低worker線程的nice值,提高優先級。

worker_priority -10;        指明worker進程的nice值;

二、以上詳解

(1)性能優化相關配置:
1、worker_process #; worker進程的個數;通常應該略少於CPU物理核心數。
2、worker_cpu_affinity cpumask 。。。;
優點: 提升CPU緩存的命中率;
context switch:會產生CPU的不必要的消耗;cpu進程切換(浪費cpu資源和時間)
CPU隔離(worker線程綁定單個cpu,)
cpumask: 0000 0011(表示第一和第二兩顆)
0000 0001
0000 0010
0000 0100
綁定三顆cpu=> worker_cpu_affinity 00000001 00000010 00000100
3、timer_resolution 間隔; 減低時間解析度,減少系統調用.生產力強的應該大量運行在用戶空間,
計時器解析度:降低此值,可減少gettimeofday()系統調用的次數;
4、worker_priority number;
指明worker進程的nice值;
-20,19
100,139
(2)事件相關的配置:
1、accept_mutex {off|on};
master調度用戶請求至各worker進程時使用的負載均衡鎖;on表示能讓多個worker輪流地、序列化地去響應新請求;
2、lock_file file;
accept_mutex用到的鎖文件路徑;
3、use [epoll|rtsig(實時信號)|select|poll]
指明使用的事件模型;建議讓Nginx自行選擇;
4、worker_connections #;
設定單個worker進程所能處理的最大並發連接數量;
worker_connects * work_processes 1024 * 8
(3)用於調試、定位問題的:
1、daemon {on|off} 是否以守護進程方式運行Nginx;調試時應該設置為off。
2、master_process {on|off};
是否以master/worker模型來運行Nginx;調試時可以設置為off;
3、error_log 位置 級別;
若要使用debug級別,需要在編輯Nginx時使用 --with-debug選項;
總結:常需要進行調整的參數
worker_processworker_connectionsworker_cpu_affinity,worker_priority

 


免責聲明!

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



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