压力测试总结

江枫思渺然 提交于 2020-01-01 09:00:14

(1) 保证测试机与被测机在同一网段。如果在不同网段,可能会存在网络瓶颈,导致压力测试达不到指定的并发量。

(2) 压力测试时,要同时观察测试机(压测工具siegeab所在的机器)和被测机的负载情况(CPU,内存,网络带宽等)。如果有数据库或缓存,还要观察数据库服务器和缓存服务器的负载情况。

(3) 压力测试时,测试机的负载不能过高,以免影响测试工具发出的请求数量和并发度。被测机的负载要达到一定程度,CPU,内存,网络带宽至少要有一项接近满负荷状态。(例如,CPU使用率达到50%以上,甚至接近100%)。

(4) 对于mysql数据库,可以在命令行下使用show processlist命令查看同一时间的连接数,以及是否存在锁定现象。

(5) 对于siege,在设置-b选项,并且未设置-v选项的情况下,并发度设置为100左右即可(测试组给的经验值)。

(6) 为了减少不确定因素对结果的影响,每次压力测试都要达到一定的数量,并持续一定的时间,例如,持续压测20-30分钟。

(7) 压力测试不能只关注QPS,还要注意查看其它指标。

(8) 为了排除个别因素对性能的影响,可以适当地修改一些设置信息,通过对比修过前后的测试结果,分析评估单一因素对性能的影响。

(9) xdebug(xhprof)会影响性能,压力测试时要去掉PHP配置文件中的xdebug(xhprof)扩展,然后重启php

(10) 虽然siege可以通过-f选项指定文件的方式同时请求多个不同的URL,但是,这种方式的缺点很明显:

· siege随机选择URL发起请求,各个URL的比例不好控制;

· 如果某个URL有问题,会影响整体的测试结果,并且难以识别。

所以,建议开启多个不同的siege进程,每个进程使用命令行选项设置请求持续时间和并发度等参数,最后,将各个siege进程的测试结果汇总。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!