nginx伺服器調優

2021-09-24 09:58:15 字數 1428 閱讀 8301

為了滿足併發要求,本次對某個介面進行壓測,目標是併發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...