nginx 效能優化

2021-10-07 14:39:37 字數 2167 閱讀 1241

(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...