ab测试大并发错误
轉(zhuǎn)載自http://xmarker.blog.163.com/blog/static/226484057201462263815783
apache 自帶的ab工具測試,當并發(fā)量達到1000多的時候報錯如下:
[root@aa~]# This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
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
查看應(yīng)用服務(wù)器和數(shù)據(jù)庫均未報錯,連接被重置,bingyi了以下,apr_socket_recv這個是操作系統(tǒng)內(nèi)核的一個參數(shù),在高并發(fā)的情況下,內(nèi)核會認為系統(tǒng)受到了SYN flood攻擊,會發(fā)送cookies(possible SYN flooding on port 80. Sending cookies),這樣會減慢影響請求的速度,所以在應(yīng)用服務(wù)武器上設(shè)置下這個參數(shù)為0禁用系統(tǒng)保護就可以進行大并發(fā)測試了:
# vim /etc/sysctl.conf
net.ipv4.tcp_syncookies = 0
# sysctl -p
然后就可以超過1000個并發(fā)測試了。
另附其他系統(tǒng)內(nèi)核參數(shù)說明:
net.ipv4.tcp_syncookies = 0
#此參數(shù)是為了防止洪水攻擊的,但對于大并發(fā)系統(tǒng),要禁用此設(shè)置
net.ipv4.tcp_max_syn_backlog
#參數(shù)決定了SYN_RECV狀態(tài)隊列的數(shù)量,一般默認值為512或者1024,即超過這個數(shù)量,系統(tǒng)將不再接受新的TCP連接請求,一定程度上可以防止系統(tǒng)資源耗盡??筛鶕?jù)情況增加該值以接受更多的連接請求。
net.ipv4.tcp_tw_recycle
#參數(shù)決定是否加速TIME_WAIT的sockets的回收,默認為0。
net.ipv4.tcp_tw_reuse
#參數(shù)決定是否可將TIME_WAIT狀態(tài)的sockets用于新的TCP連接,默認為0。
net.ipv4.tcp_max_tw_buckets
#參數(shù)決定TIME_WAIT狀態(tài)的sockets總數(shù)量,可根據(jù)連接數(shù)和系統(tǒng)資源需要進行設(shè)置。
轉(zhuǎn)載于:https://www.cnblogs.com/a-flydog/p/5458994.html
總結(jié)
- 上一篇: Windows切换网段脚本
- 下一篇: Selenium实战脚本集(3)--抓取