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)。

其他重要参数:
Complete requests: 100 #完成请求的总量
Failed requests: 96 #失败的请求次数
Requests per second: 79.62 [#/sec] (mean) #平均每秒请求数




在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),是指服务器作为网关或代理,但是没有及时从上游服务器收到请求,主要原因是业务处理超时了。


499:499错误是客户端主动断开了连接
解决方案:可以通过nginx配置:proxy_ignore_client_abort来处理,即如果此项设置为on开启,则服务器会忽略客户端中断,一直等着代理服务执行返回。并且如果执行没有发生错误,记录的日志状态是200日志。如果超时状态则会记录504
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值