性能测试中的数据分析
性能测试的主要目的之一是确定性能瓶颈的所在,而要确定性能瓶颈,最好的方法就是通过性能测试过程中的性能指标来进行分析。性能指标分析绝对是一件让人万分痛苦的工作,不仅在于性能指标的数量本来就多,更大的困难在于性能指标和性能瓶颈直接并没有直接的关系,不可能只依据少数的几个性能指标的相关性就能分析出性能问题的所在。没有对系统深入的了解(包括操作系统、应用服务器、应用、数据库系统),很可能就会得出似是而非的结论。
请先看一个简单的例子:
我们在性能测试过程中,发现随着负载的增长,数据库服务器的可用内存不断减小,最终在可用物理内存还剩下几十M的时候不再增长,持续施加压力,系统的响应速度变慢。那么,我们能据此分析出性能问题的所在和提出相应的提高性能的建议吗?
且慢看后后续的解释,自己想想看,如果是你遇到了这样的情况,你会怎么定位?是数据库服务器的问题?增加内存可以解决?
直观上来看,似乎就是内存的问题。然而,请看看我的问题:
1、 这个数据库系统是什么数据库系统?不同的数据库系统的内存分配模型是完全不同的,上面的数据库使用内存的行为就是SQL Server2000使用内存的行为,完全没有不正常;
2、 系统的响应速度变慢,是在测试开始后多长时间?此时数据库中的记录数量是多大?会不会是因为数据库设计或应用实现的问题,导致数据量大的时候出现响应速度变慢?
3、 增加内存当然可以改善数据库本身的性能表现,但如果主要问题不在于资源不足,这样做值得吗?
由此可见,对性能测试的结果进行分析绝对不是一件简单的事情,在这么一个简单的例子中,一样存在这么多的可能性。
本文不打算详细探讨如何针对性能测试结果进行分析,只是引入这样一个问题来说明分析的复杂性和需要考虑的因素。
当然,在进行性能指标的分析时,对指标的意义的了解应该是分析的第一步,下表列出了LR在测试过程中可以收集的Unix主机的性能指标,不妨自己看看,看能不能明确这些指标的含义:)
我这里只对Page-in
rate 指标进行解释,Page-in rate指标表明的是每秒交换到物理内存中的页面数。单从字面上就能明白这个指标的含意,但是我如果更深入地问,这个指标究竟意味着什么?如何判断这个指标的取值是高还是底?实际上,这个指标体现的是磁盘-内存交换的吞吐量,是否合理要根据磁盘随机存取速率、块大小来计算决定,而且还和是否使用了RAID、 Windows的条带集有关。
Average load Average number of processes simultaneously in ready state during the last minute
Collision rate Collisions per second detected on the Ethernet
Context switches rate Number of switches between processes or threads, per second
CPU utilization Percent of time that the CPU is utilized
Disk rate Rate of disk transfers
Incoming packets error rate Errors per second while receiving Ethernet packets
Incoming packets rate Incoming Ethernet packets per second
Interrupt rate Number of device interrupts per second
Outgoing packets errors rate Errors per second while sending Ethernet packets
Outgoing packets rate Outgoing Ethernet packets per second
Page-in rate Number of pages read to physical memory, per second
Page-out rate Number of pages written to pagefile(s) and removed from physical memory, per second
Paging rate Number of pages read to physical memory or written to pagefile(s), per second
Swap-in rate Number of processes being swapped
Swap-out rate Number of processes being swapped
System mode CPU utilization Percent of time that the CPU is utilized in system mode
User mode CPU utilization Percent of time that the CPU is utilized in user mode 写的好。 写的不错呀! 对于楼主的观点,十分赞同,可惜小弟的水平有限,对于后面的例子似懂非懂,真希望有机会和楼主好好讨教讨教 好啊 谢谢 DING!!! 不错,有收获l sdlkfj2 sdlkfj2 sdlkfj2 sdlkfj2 sdlkfj2 关注作者,希望你早日出书 写的好啊 谢谢分享
ding
思路清晰,严谨。
页:
[1]