1.使用ab: ubuntu安装ab: apt-get install apache2-utils centos安装ab: yum install httpd-tools 执行压力测试: ab -c 200 -n 200 http://testsite/ ab参数说明:-n表示连接数,-c表示并发数 添加 Cookie 参数: ab -C cookie1_name=cookie1_value -C cookie2_name=cookie2_value .... 或 ab -C "name=ball;age=99;sex=male" 或 ab -H "Cookie: cookie1_name=cookie1_value; cookie2_name=cookie2_value" 当出现如下报错: apr_socket_recv: Connection reset by peer (104) 需要加入-r参数 如ab -r -c 200 -n 200 http://testsite/ 当出现如下报错: apr_pollset_poll: The timeout specified has expired (70007) 出现原因主要是timeout连接超时了,可以加个-k参数,让连接keep-alive,另外还有-r 和-s参数也可以加上 -r Don't exit on socket receive errors. # 在遇到socket接收错误后,不退出测试 -s timeout Seconds to max. wait for each response # 最大超时时间,默认30s Default is 30 seconds -k Use HTTP KeepAlive feature # keep-alive保持连接 POST请求压测: 测试请求参数是否正确: curl -X POST https://xxxxx -d "token=1111&a=2222" vi post.txt token=1111&a=2222 ab -n 5000 -c 500 -p 'post.txt' -T 'application/x-www-form-urlencoded' "https://xxxxxx"
2.使用http_load http://acme.com/software/http_load/ wget http://acme.com/software/http_load/http_load-09Mar2016.tar.gz tar -xvzf http_load-09Mar2016.tar.gz -C ./ cd http_load-09Mar2016 make vi urls.txt 添加需要做压测的url ./http_load -p 并发访问进程数 -rate -s 访问时间(秒) urls.txt ./http_load -r 每秒的访问频率 -s 访问时间(秒) urls.txt
可配合 htop iohtop 同时检测服务器状态 yum install htop iohtop curl禁用代理: curl --noproxy 127.0.0.1 http://127.0.0.1/