ab是常用的压测工具,安装apache后就自带ab压测工具。不安装apache也可以直接使用ab,只需要安装apache的工具包httpd-tools即可。使用ab –V命令即可查看ab是否安装成功。压测示例见下方,使用-p带上要post的数据存放的文件路径,-H带上常用的token数据即可开压。如下:本文地址:http://8408.cn/article/1014.html,未经许可,不得转载.
# yum -y install httpd-tools # ab -V This is ApacheBench, Version 2.3 <$Revision: 1430300 $> # cat post.txt {"user_id":1} # 压测示例 ab -n 20000 -c 1000 -p post.txt -T application/json -H 'x-token: SDY21=' http://127.0.0.1. #1压测响应时可能遇到错误1: Benchmarking 10.28.20.13 (be patient) Completed 2000 requests apr_socket_recv: Connection reset by peer (104) Total of 1085 requests completed #2压测响应时可能遇到错误1: Benchmarking 10.18.230.23 (be patient) Completed 2000 requests apr_socket_recv: Connection timed out (110) Total of 1085 requests completed本文地址:http://8408.cn/article/1014.html,未经许可,不得转载.
此两项报错均未到程序层面。apr_socket_recv是操作系统内核的一个参数,在高并发的情况下,内核会认为系统受到了SYN flood攻击,会发送cookies(possible SYN flooding on port 80. Sending cookies),以减慢影响请求的速度,所以在应用服务武器上设置下这个参数为0禁用系统保护就可以进行大并发测试。本文地址:http://8408.cn/article/1014.html,未经许可,不得转载.
# vim /etc/sysctl.conf net.ipv4.tcp_syncookies = 0 # sysctl -p 然后就可以超过1000个并发测试了。本文地址:http://8408.cn/article/1014.html,未经许可,不得转载.
网上有说是资源描述符的问题,用ulimit -n 65536解决,也有说是在/etc/sysctl.conf加入参数:本文地址:http://8408.cn/article/1014.html,未经许可,不得转载.
#vim /etc/sysctl.conf net.nf_conntrack_max = 655360 net.netfilter.nf_conntrack_tcp_timeout_established = 1200 sysctl -p /etc/sysctl.conf本文地址:http://8408.cn/article/1014.html,未经许可,不得转载.
不过我今天在遇到这个问题的时候和上面这些选项都没有关系,看了配置也都正常。最后是程序里面的mysql连接问题导致无法处理请求从而连接超时。net.ipv4.tcp相关的几个重要的系统配置如下:本文地址:http://8408.cn/article/1014.html,未经许可,不得转载.
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://8408.cn/article/1014.html,未经许可,不得转载.
本文地址:http://8408.cn/article/1014.html 未经许可,不得转载. 手机访问本页请扫描右下方二维码.
手机扫码直接打开本页面 |