apache ab壓力測試報錯(apr_socket_recv: Connection reset by peer (104))

apache ab壓力測試報錯(apr_socket_recv: Connection reset by peer (104))

apache ab壓力測試報錯(apr_socket_recv: Connection reset by peer (104))  

 

 

今天用apache 自帶的ab工具測試,當併發量達到1000多的時候報錯以下:html

[root@aa~]# This is ApacheBench, Version 2.3 <$Revision: 655654 $>數據庫

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/apache

Licensed to The Apache Software Foundation, http://www.apache.org/vim

 

Benchmarking 192.168.1.176 (be patient)服務器

Completed 300 requestscookie

Completed 600 requests併發

Completed 900 requestssocket

apr_socket_recv: Connection reset by peer (104)tcp

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總數量,可根據鏈接數和系統資源須要進行設置。 

 

參考:

http://zhumeng8337797.blog.163.com/blog/static/100768914201262091634698/

相關文章
相關標籤/搜索