Nginx壓力測試問題

2022-07-20 17:24:12 字數 1387 閱讀 4937

[root@aa~]# this is apachebench, version 2.3 isio

n:655654

'>revision:655654

revision:655654>

licensed to the apache software foundation,

benchmarking 192.168.1.176 (be patient)

completed 300 requests

completed 600 requests

completed 900 requests

apr_socket_recv: connection reset by peer (104)

total of 1085 requests completed

檢視應用伺服器和資料庫均未報錯,連線被重置,bingyi了以下,apr_socket_recv這個是作業系統核心的乙個引數,在高併發的情況下,核心會認為系統受到了syn flood攻擊,會傳送cookies(possible syn flooding on port 80. sending cookies),這樣會減慢影響請求的速度,所以在應用服務**上設定下這個引數為0禁用系統保護就可以進行大併發測試了:

# vim /etc/sysctl.conf 

net.ipv4.tcp_syncookies = 0

# sysctl -p

然後就可以超過1000個併發測試了。

net.ipv4.tcp_syncookies = 0  

#此引數是為了防止洪水攻擊的,但對於大併發系統,要禁用此設定

net.ipv4.tcp_max_syn_backlog

#引數決定了syn_recv狀態佇列的數量,一般預設值為512或者1024,即超過這個數量,系統將不再接受新的tcp連線請求,一定程度上可以防止系統資源耗盡。可根據情況增加該值以接受更多的連線請求。

net.ipv4.tcp_tw_recycle

#引數決定是否加速time_wait的sockets的**,預設為0。

net.ipv4.tcp_tw_reuse

#引數決定是否可將time_wait狀態的sockets用於新的tcp連線,預設為0。

net.ipv4.tcp_max_tw_buckets

#引數決定time_wait狀態的sockets總數量,可根據連線數和系統資源需要進行設定。 

參考:如果還沒解決,可嘗試下面的方法

ab提供了乙個引數:-r

這個引數的意思是當出現「receive error」,即接收資料錯誤時是否退出,預設是退出的,所以會出現上述的問題,加上這個標誌就表示不退出了,有原始碼為證,如下:

原始碼路徑: /support/ab.c

壓力測試問題

環境 兩台虛機配置,千m網絡卡 a 8cpu,32g記憶體 應用伺服器 b 2cpu,8g記憶體 資料庫 壓力測試資料 200使用者,每秒響應160 170次左右,cpu占用10 左右,記憶體占用穩定,始終無法提公升,網路使用率4 資料庫伺服器,cpu 2 記憶體占用穩定 資料庫一切正常,伺服器cp...

mac ab壓力測試問題

ab認為第一次請求的內容是成功內容 後面請求要是不一樣就認為是失敗 待驗證錯誤問題 apr socket recv connection reset by peer 54 是由於使用的macosx預設自帶的ab限制了併發數導致的。解壓 tar zxvf apr 1.5.2.tar.gz 進入解壓後目...

Nginx 壓力測試

nginx壓力測試 目錄1 硬體配置 3 1.1 型號 3 1.2 cpu 3 1.3 記憶體 3 2 軟體環境 3 2.1 作業系統 3 2.2 服務版本 3 2.3 測試軟體 3 3 併發測試 3 3.1 1000併發 4 3.2 2000併發 5 3.3 3000併發 6 4 測試總結 8 4...