软件测试--系统性能分析
测试开发----系统性能分析
系统工作负载性能因素
物理方面
处理器速度
内存容量
网路或磁盘I/O控制器数量
磁盘容量及速度
软件方面
应用程序自身的性能特征、工作负荷特征
应用程序之间的通信行为
磁盘或网络上数据访问模式
终端用户对应用程序的使用模型
对特定工作符合调优时常常先假定物理环境的特征不变。
性能分析主要目标
识别出工作负荷中哪些是提高性能和整体吞吐率的瓶颈,以及当工作负荷已导致硬件能力饱和时,哪些硬件配置改进会提高该工作负荷吞吐率及性能
分析信息项
1.整体CPU利用率
2.内存利用率
3.磁盘I/O利用率和延迟
4.网络利用率
CPU因素分析
前提:先了解系统处理器的情况,例如逻辑处理器、处理器型号、主频率、cache大小、是否支持超线程等
当CPU满载时,需要结合系统的附带监控分析工具,检查相关系统日志,web服务器应用日志,DB日志等,结合辅助命令来分析CPU为什么会被完全占用,以及后续优化方案等。
内存因素分析
要点
可用内存过小,进程会被阻塞,应用运行缓慢或失去响应,甚至可能触发系统的OOM(内存溢出)从而引起应用程序被系统杀死,更严重可能导致系统重启;
可用内存过大,也是对资源的浪费,可考虑做一些缓存服务器来提升性能
32位系统和64位系统的寻址问题
32位系统寻址范围有限,会导致系统实际使用内存没有预期这么“大”,而64位系统没有这个问题
虚拟内存
当系统物理内存不够用时,需要将物理内存中一部分释放以供当前运行的程序使用,而被释放掉的空间一般来自长时间误操作的应用,这些释放的空间被临时地存放在虚拟内存空间中,当这些程序需要运行时,再从虚拟内存中恢复保存的数据到物理内存。
在做性能分析的时候需要考虑虚拟内存情况
网络因素分析
要点
网络带宽、响应时间、网络延迟、阻塞等
需要考虑网络是否可达,防火墙是否开启,端口访问,带宽限制,路由寻址,网络时延等问题
I/O因素分析
I/O读写性能会直接影响程序性能,若I/O读写频繁时,其得不到满足会导致应用阻塞,需要考虑I/O的TPS,平均I/O数据,平均队列长度,平均服务时间,平均等待时间,I/O利用率
总结
因素常常相互依赖,任何一个因素的高负载都会使其他资源受到影响。
1.大量网络吞吐量会导致占用CPU资源增大,系统此时需分出资源来进行软件中断处理
2.大量CPU开销会尝试更多内存应用
3.在进行系统优化时,关键在于找到真正的瓶颈所在