一般来说,压力测试用的都是apache软件自带的ab命令,这个命令可以自己手动规定模拟多少个人同时访问目标网址同时这些人访问多少次。ab的格式如下:
#ab -c 1000 -n 50000 http://192.168.1.202/index.html
这句话的意思是模拟3000个用户同时访问192.168.1.202的主页,访问50000次。注意url一定要写全,不可以就写一个192.168.1.202。
但是ab有一点缺憾,那就是只能访问静态网页,如果是动态网页比如是聊天室那种网页就访问不了,这种情况需要搭配shell脚本来搞定。
ab的结果如下:
这份报告里面显示了 目标服务器软件是1.2.7的nginx,并发1000,请求了50000次,其中50000次请求有3700多个失败了(不算优秀)。总共花了13秒多,一共交换了多少个字节,其中80%的请求反应只花费了100ms,18%的请求响应花费了1秒以上,剩余2%的响应用了3秒。
几个常见的ab压力测试情况
如果服务器这么反应:
提示socket打开了太多了文件,也就是说这个服务器有2000个人来同时访问,就会歇菜。那么这个问题就是突破的一个point,如何扩大socket个数?
#ulimit -n 20000,这个命令就把原来默认的1024提升到20000,现在应对2000次并发应该绰绰有余了。
(等待后续)
响应出错太多怎么办?比如这样:
实际并发量不够,比如-c 2000,但是使用/status查看,Active connection 只有700不到:
时间: 2024-10-17 18:25:52