linux ab压力测试

1、ab安装
yum -y install httpd-tools
安装完成后看下是否安装成功: ab -V

2、编写脚本
echo '{"userId":"500669758"}' > /usr/local/ab/home_edu/getUserSig
ab -n 20000 -c 4000 -k -p "/usr/local/ab/home_edu/getUserSig" -H "token:6B0011980C7A0B43EDEE0A359094871A8E81386F224642852878B4391786C5B4" -H "Content-Type:application/json;charset=UTF-8" https://api-test.gupiao.com/renren-fast/IM/getUserSig

其中 
1、echo 跟的是请求参数,后面跟着是请求参数保存路径
2、-n 代表发送2万个请求
3、-c 代表每秒发送4000个请求
4、-p代表请求参数路径
5、-H代表请求的header参数
6、最后跟着就是接口请求完整路径

 

Percentage of the requests served within a certain time (ms)

  50%    106

  66%    109

  75%    111

  80%    114

  90%    118

  95%    154

  98%    176

  99%    195

 100%    195 (longest request)

//这个表第一行表示有50%的请求都是在106ms内完成的,可以看到这个值是比较接近平均系统响应时间(第一个Time per request:       109.287 [ms] (mean) )

以此类推,90%的请求是小于等于118ms的。刚才我们看到响应时间最长的那个请求是195ms,那么显然所有请求(100%)的时间都是小于等于195毫秒的,也就是表中最后一行的数据肯定是时间最长的那个请求(longest request)。




在nginx或者SLB中看到的状态码说明:
503:nginx或者slb请求超载,多余的请求被nginx或者slb给丢弃了
调整方案:如果是nginx,可以使用多个nginx,让域名解析按照权重分配到不同的nginx中,如果是slb,那么使用多个slb,让域名解析按照权重分配到不同的slb中。

502:服务端超载,多余的请求被tomcat给丢弃了
调整方案:如果是java项目服务,比如springboot,springcloud项目中设置tomcat连接数,最大接收数等等,根据自己并发能力需要来定,如果设置太大其他服务redis,mysql等等跟不上服务也会挂掉,我这边根据自己并发量调整大了点,这样保证大量请求能进来不被tomcat拒绝。

504:代表网关超时 (Gateway timeout),是指服务器作为网关或代理,但是没有及时从上游服务器收到请求,主要原因是业务处理超时了。

猜你喜欢

转载自blog.csdn.net/qq_39291929/article/details/112232496