(1)從軟體層面提公升硬體使用效率
①增大cpu的利用率
②增大記憶體的利用率
③增大磁碟io的利用率
④增大網路頻寬的利用率
(2)提公升硬體規格
①網絡卡:萬兆網絡卡,例如10g,25g,40g等
②磁碟:固態硬碟,關注iops和bps指標
④記憶體:更快的訪問速度
(3)超出硬體效能上限後使用dns
(1)能夠使用全部cpu資源
①master-worker多程序架構
②worker程序數量應當大於等於cpu核數(master程序只是負責管理,worker程序為實際工作程序)
(2)nginx程序間不做無用功浪費cpu資源
①worker程序不應在繁忙時,主動讓出cpu(多個worker程序間不應由於爭搶造成資源耗散。worker程序應當等於cpu核數)
②worker程序不應呼叫一些api導致主動讓出cpu,拒絕類似的第三方模組
(3)不被其他程序爭搶資源
①提公升優先順序占用cpu更長時間
②減少作業系統上耗資源的非nginx程序
1.worker_processes 指令
語法:worker_processes number | auto(選用auto時,自動選擇跟cpu核數相同)
預設:worker_processes 1;
放置位置:main
在巨集觀上並行,微觀上序列
把程序的執行時間分為一段段的時間片,os排程系統依次選擇每個程序,最多執行時間片指定的時長
阻塞api引發的時間片內主動讓出cpu
(1)速度不一致引發的阻塞api(硬體執行速度不一致,例如cpu和磁碟)
(2)業務場景產生的阻塞api(例如同步讀網路報文)
(1)使nginx worker程序盡可能處於執行狀態
(2)盡可能減少程序間切換(linux命令: vstat,dstat, pidstat -w -p 程序號 1)
(3)繫結cpu
(1)nice靜態優先順序:-20 —— 19 (越小優先順序越高,一般把nginx調到-20)
1.worker_priority指令(設定worker程序的靜態優先順序)
語法:worker_priority number;
預設:worker_priority 0;
放置位置:main
(2)priority動態優先順序:0——139
提公升cpu快取命中率:worker_cpu_affinity
1.worker_cpu_affinity指令(繫結worker到指定cpu)
語法:worker_cpu_affinity cpumask.......; worker_cpu_affinity auto(自動乙個worker繫結一顆cpu)
預設:空
放置位置:main
Nginx效能優化
在http裡面新增一行 server tokens off 預設可以設定為cpu的核數相等,併發比較大的時候,可以設定為cpu核數 2 worker cpu affinity 0001 0010 0100 1000 四核worker cpu affinity 00000001 00000010 00...
nginx效能優化
1 執行緒池 預設情況下,nginx的work process按照順序乙個個處理http請求,因此如果後台處理時間較長,則work process會長時間等待io狀態,因此限制併發性。如下所示 所以,對於可能存在的這類http請求,一般會啟用執行緒池。預設情況下,執行緒池特性並不啟用,需要在編譯時增...
Nginx效能優化
簡介 在大多數情況下,乙個常規安裝的nginx對 來說已經能很好地工作了。然而如果想擠壓出nginx的效能,就需要了解哪些指令會影響nginx效能,在本文中將解釋nginx的哪些設定可以微調。需要注意一點,這是乙個簡單的預覽 那些可以通過微調來提高效能設定的概述,不同的環境可能情況不太一樣。對於ng...