loadrunner 服务器端性能指标分析

1.CPU

CPU使用率(%processor time),在80%±5%范围内波动为宜。过低,则服务器CPU利用率不高;过高,则CPU可能成为系统的处理瓶颈。

CPU队列长度(processor queue length),队列长度不要超过CPU内核的2倍。例如双核CPU,队列长度不要超过4个。

判断CPU瓶颈:

1. %processor time 平均值大于95

2. processor queue length大于2 (大于处理器个数+1).可以确定CPU瓶颈.但若%processtime一直很低,则存在处理器阻塞。

3. CPU空闲时间为零(%idle Time)

4. 过高的用户占用CPU时间(%User Time)

5. 过高的系统占用CPU时间(%Privileged Time:长期大于90%或者95%)

备注:1.%User time(processor_total)表示耗费CPU的数据库操作,如排序,执行aggregatefunctions等。如果该值很高,可考虑增加索引,尽量使用简单的表联接,水平分割大表格等方法来降低该值

2.如果CPU使用率不断上升,内存使用率也不断上升,表明系统可能产生资源争用情况,引起原因,程序资源调配问题。


2.带宽:

每秒接收的数据量(Bytes received/sec ),应该低于服务器下行带宽/8较好。

每秒发送的数据量(Bytes sent/sec)应该低于服务器上行带宽/8较好

网络瓶颈判断:

1.bytes total/sec(network interface).用这个数值和当前网络带宽比较,两者相除结果应小于50%

2.随着负载的加大,点击率和吞吐量会随之增大。如果系统的吞吐量随着负载的加大出现平坦或降低并且CPU的使用率很高,并且此现象发生时切换水平Contextswitch/sec(system) 在15000以上,那么意味着上下文切换次数过高,表明网络饱和。


3.内存:

可用内存(Available MBytes)。当这个数值变小时,表示Windows开始频繁地调用磁盘页面文件。如果这个数值很小,例如小于5 MB,系统会将大部分时间消耗在操作页面文件上。一般要保留10%的可用内存。最低不能<4M,此值过小可能是内存不足或内存泄漏。

内存的页交换频率(pages/sec),即内存与虚拟内存(硬盘)交换的频率。值越低越好,大致在1百以内。

内存不足/泄漏的现象:

1.private bytes(process)计数器和workingset(process)计数器持续升高,同时memory/availablebytes值持续降低,表明内存泄漏。

2.Page write/sec(memory)每秒执行的物理数据库写的页数。

说明:如果服务器没有足够的内存处理其工作负荷,此数值将一直很高。如果大于80,表示有问题(太多的读写数据操作要访问磁盘,可考虑增加内存或优化读写数据的算法)。 


4.磁盘I/O:

硬盘使用率(%Disk time),硬盘队列长度(Avg. Disk queue length). 这两个值都是越低越好。

硬盘瓶颈分析:

1.%disk time和Avg.DiskQueue Length的值很高,而pagereads/sec(memory)很低,则可能存在磁盘瓶颈;若pagereads/sec(memory)并未降低,则是内存不足。

2.avg.disk sec/read,avg.disksec/write 大于20ms,则可能有磁盘瓶颈

3.Avg.Disk sec/Transer磁盘中读写数据的平均时间,单位是秒。该值小于15ms最为优异,介于15-30ms之间为良好,30-60ms之间为可以接受,超过60ms则需要考虑更换硬盘或硬盘的RAID方式。

4.Disk Transfers/sec 指在此盘上读取/写入操作速率。正常值<(DiskBytes/sec)/3,此值过大表示系统要求的IO速度已接近硬盘的最大速度,要更换更快的硬盘

5.Avg.disk queue length该值应不超过磁盘数的1.5~2倍。要提高性能,可增加磁盘。注意:一个RaidDisk实际有多个磁盘。 

5. SQL Server 相关

1. SQLServer:Buffer Manager ->Buffer cache Hit Ratio 显示在高速缓存中找到数据的命中率。如果数值持续小于 85%, 则表示内存有问题。
2. SQLServer:Locks->Lock Waits/sec 显示在当前进程完成之前强制其他进程等待的每秒锁定请求的数量。如果该值始终大于 0, 则表示事务有问题。
3. SQLServer:Databases->Transactions/sec 每秒为数据库启动的事务数


6.线程:线程主要消耗的是CPU的资源,在CPU可负担的情况下,线程越多越好。一般是服务器能承受的最大线程的四分之三。

7.动态影响:三层架构CSD,哪一层都可能成为瓶颈,三者间的平衡点才是系统的最大并发。

8.缓存:系统级性能调优时,重点利用缓存。现在CPU,硬盘都自带缓存,利用好这些缓存。代码级调优,则主要是算法,sql语句。尽量减少内存的使用,用好内存,减少运算次数。

辅助工具:everest, xampp

你可能感兴趣的:(Loadrunner)