压力测试总结
(1) 保证测试机与被测机在同一网段。如果在不同网段,可能会存在网络瓶颈,导致压力测试达不到指定的并发量。 (2) 压力测试时,要同时观察测试机(压测工具 siege 或 ab 所在的机器)和被测机的负载情况( CPU ,内存,网络带宽等)。如果有数据库或缓存,还要观察数据库服务器和缓存服务器的负载情况。 (3) 压力测试时,测试机的负载不能过高,以免影响测试工具发出的请求数量和并发度。被测机的负载要达到一定程度, CPU ,内存,网络带宽至少要有一项接近满负荷状态。(例如, CPU 使用率达到 50% 以上,甚至接近 100% )。 (4) 对于 mysql 数据库,可以在命令行下使用 show processlist 命令查看同一时间的连接数,以及是否存在锁定现象。 (5) 对于 siege ,在设置 -b 选项,并且未设置 -v 选项的情况下,并发度设置为 100 左右即可(测试组给的经验值)。 (6) 为了减少不确定因素对结果的影响,每次压力测试都要达到一定的数量,并持续一定的时间,例如,持续压测 20-30 分钟。 (7) 压力测试不能只关注 QPS ,还要注意查看其它指标。 (8) 为了排除个别因素对性能的影响,可以适当地修改一些设置信息,通过对比修过前后的测试结果,分析评估单一因素对性能的影响。 (9) xdebug(xhprof) 会影响性能,压力测试时要去掉