性能测试的目的: 优化产品逻辑资源,改善运行环境
场景:测性能缺陷
内存泄漏:同一操作会使内存不断升高;容易导致内存空间不够用。
内存溢出:在经过一系列操作后,在建议内存配置的机器下,内存超过最大值;产品运行效率变低,有可能运行直接卡死;
内存上升过高:某些操作虽然不会弄爆内存,但是会使内存上涨幅度较大;应及时优化,在迭代过程中,随着新功能或资源的加入,导致内存过高,也不利于定位问题;
cpu占用率飙升比较厉害:出现并发就容易导致CPU超过阈值;或者并发数会减少。
CPU长期保持高位水平:代表功耗高。
CPU占用最高值:观察什么操作会使将CPU资源占满,再分析是否合理。
磁盘IO很高:观察什么操作会使将CPU资源占满,再分析是否合理。
场景:测试性能瓶颈
场景:测试性能迭代情况
设好测试环境的资源配置,内存使用量,CPU使用量;客户端的线程数,确保数据源一样,测试脚本一样;
TPS指标下降的原因:
业务逻辑有更新,业务逻辑变慢了,调查函数的耗时;
业务逻辑没有更新,外部服务耗时高了,调查外部服务的耗时;
业务逻辑没有更新,外部服务耗时也没有变化,可能是测试环境有变化,重测上版本产品;
总进程数与正在运行进程数增加
在测试过程中,避免其他进程的执行对测试环境造成资源的损耗;
磁盘IO频繁
当CPU与内存使用资源未被占满,磁盘IO很高,证明瓶颈在磁盘IO。
磁盘空间:满载情况下会导致程序运行失败。
根据客户给出的机器配置用来跑产品,设置最大并发数,找出性能瓶颈;
在测试环境,设置CPU、内存的最大设置最大并发数,找出性能瓶颈;
备注:
由于硬件不同,不同的测试环境会导致性能瓶颈不一样,所以一般会设置CPU和内存的使用最大值,以便于将性能瓶颈落在这两项比较直观的指标上。
如果该API不能使CPU或内存满载,那需要研究性能瓶颈是否在其他地方,比如硬盘IO,如果不是有可能是网络延迟问题,可以继续增大并发数。
只有在资源满载的情况下,才能确定该API运行不被其他因素影响。
网友评论