1.1阻塞和非阻塞網路模型
同步阻塞模型,當相求程序或者執行緒數量增加到一定程度後,效能會急劇下降,負載率不高。(不建議使用)
nginx基於事件的非阻塞多路復用(epool或kquene)模型,乙個程序在短時間內可以響應大量的請求。(建議使用)
1.2cpu個數
建議:小於等於cpu核心的數量,一般高於cpu數量會產生程序切換開銷的負面影響。
worker_processes 2;
2.1將work_process繫結到特定的cpu上,避免cpu間切換的開銷。
2.2設定方法
2核cpu的配置
worker_cpu_affinity 01 10;
4核cpu的配置
worker_cpu_affinity 0001 0010 0100 1000;
8核cpu的配置
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 1000000;
一般設定為655350
每個程序最大開啟檔案描述符數量,linux系統上檔案描述符比較廣義:網路埠、裝置、磁碟檔案都是。檔案描述符用完了,新的連線會被拒絕,產生502類錯誤。
linux設定最大開啟檔案數可通過 ulimit -n 655350設定。
worker_rlimit_nofile 655350;
4.1 worker_connections
併發響應能力的關鍵配置,每個程序允許的最大同時連線數=worker_connections * worker_processes
要注意的是這邊最大同時連線數不等同於響應的使用者數量,靜態伺服器最大連線數= worker_connections * worker_processes / 2
做反向**伺服器時,最大連線數=worker_connections * worker_processes / 4
worker_connections 10000;
4.2指定使用epoll或kquene
use epoll
5.1日誌io有關設定
關閉access_log日誌,減小io開銷,但是就不會產生訪問資訊,不利於業務分析,不建議使用。
access_log off
至記錄錯誤日誌減小io壓力
error_log logs/error.log crit
啟用核心複製模式,保持開啟達到最快io效率
sendfile on
tcp_nopush on
tcp_nodelay on 禁用nagle演算法
啟動上述兩個配置項,會在資料報達到一定大小後傳送資料,這樣會減少網路通訊次數,降低阻塞概率,但會影響響應及時性。
keepalive_timeout 30s;
http1.1支援持久連線alive,降低每個連線的alive時間可以在一定程度上提高可響應連線數量,所以一般可適當降低此值.
開啟內容壓縮
gzip on
內容壓縮長度設定,過短內容壓縮效果不好,壓縮過程還會浪費系統的資源
gzip_min_length 1000
內容壓縮級別 1-9級,壓縮級別越高壓縮率越高,但對系統效能要求越高
gzip_comp_level 4
壓縮的內容類別,多個使用空格隔開
open_file_cache max=655350 inactive=20s最大快取檔案數量,檔案未使用存活期
open_file_cache_valid 20s
驗證快取有效期時間間隔
open_file_cache_min_uses 2
有效期內檔案最少使用次數
HDFS Balance調優引數設定
問題背景與現象 當hdfs集群各個datanode儲存的資料不均衡時,需要使用hdfs balance功能,調整相關引數可以提公升balance效能。操作步驟 修改如下引數 dfs.datanode.max.transfer.threads 8192 dfs.namenode.replication...
調優 Nginx效能調優
一.nginx優化配置 1.主配置檔案優化 注 部分配置詳解 worker processes 8 nginx程序數,建議按照cpu數目來指定,一般為它的倍數。worker cpu affinity 00000001 00000010 00000100 00001000 00010000 00100...
Nginx 效能調優
一.nginx優化配置 1.主配置檔案優化 注 部分配置詳解 worker processes 8 nginx程序數,建議按照cpu數目來指定,一般為它的倍數。worker cpu affinity 00000001 00000010 00000100 00001000 00010000 00100...