為了滿足併發要求,本次對某個介面進行壓測,目標是併發1200(實際可以達到1600),rt 1s以內;nginx+tomcat集群
1、剛開始啟動200執行緒,30秒,沒有任何問題,響應時間也正常;
2、將持續時間調整到300秒後,執行到一定時間就會報錯,並且後續請求都是錯誤;
3、通過檢視error日誌發現:
此報錯說明nginx在反向**到tomcat時,埠已經耗盡,不能再分配埠。
4、解決方案:
首先將埠範圍擴大,
檢視埠範圍:
sysctl net.ipv4.ip_local_port_range擴大埠範圍:
echo 15000 64000 > /proc/sys/net/ipv4/ip_local_port_range
(但是治標不治本,因為埠最多只有65535個);
再通過 netstat -anp檢視網路連線,發現有很多連線處於time_wait,於是只需將處於time_wait的連線快速**即可解決問題;所以通過改寫核心引數解決:
sysctl -w net.ipv4.tcp_timestamps=1 開啟對於tcp時間戳的支援,若該項設定為0,則下面一項設定不起作用
sysctl -w net.ipv4.tcp_tw_recycle=1 表示開啟tcp連線中time-wait sockets的快速**
引申擴充套件關於解決time_wait的處理辦法
具體的解決方式
vim /etc/sysctl.conf
net.ipv4.tcp_syncookies = 1
// 表示開啟syn cookies。當出現syn等待佇列溢位時,啟用cookies來處理,可防範少量syn攻擊,預設為0,表示關閉
net.ipv4.tcp_tw_reuse = 1
//表示開啟重用。允許將time-wait sockets重新用於新的tcp連線,預設為0,表示關閉;
net.ipv4.tcp_tw_recycle = 1
//表示開啟tcp連線中time-wait sockets的快速**,預設為0,表示關閉
net.ipv4.tcp_fin_timeout = 30
//修改系統預設的 timeout 時間
/sbin/sysctl -p //儲存後生效
10 伺服器調優
前章講到tomcat apache伺服器的整合,提高伺服器的訪問效率,tomcat負責jsp的訪問,apache負責對靜態檔案 html 其他資源的訪問。1 apache jk tomcat整合 2 負載均衡 3 容量計畫 1.1 apache整合tomcat apache和tomcat的整合有三種...
伺服器調優原理
動態優先順序 核心自動檢測占用cpu時間的程序,自動調整程序的優先順序 手動優先順序調整 調整nice值,但是核心也會再動態調整這些手動調整優先順序高的程序 cpu排程佇列 0 139個優先順序佇列 核心從優先順序由高到低挨個掃瞄佇列,排程策略 先到先得,輪流,完全公平 cfs 核心排程實時程序 先...
Nginx Nginx伺服器配置調優
1 nginx伺服器配置調優 5 設定nginx全域性引數 vi usr local nginx conf nginx.conf 編輯 worker processes 2 工作程序數,為cpu的核心數或者兩倍 events 以下 在http 部分增加與修改 server names hash bu...