指标分析
windows资源指标添加如下:
在controller中运行完毕,打开Analysis查看结果:
报表中的图展示这几项最优:
右键图标的几个选项功能介绍:
选择筛选器和分组:
选择不同的分组方式:
设置粒度:
查看度量趋势:
勾选查看度量趋势以后,三条线就会重合在一起,而不是homepage的事务和其他事务分开。
查看原始数据:
可以导出xls文件。
合并图:
单纯的从这些合并图中能看出一些关联,但是关联也不是很强。
选中关联:
X轴是虚拟用户数,Y轴是每秒点击次数,随着虚拟用户数的增加每秒点击次数的变化。
自动关联:
可以拉动红色或者绿色的横条选择统计哪个时间段的数据。
显示图如下,直接相关就是说随着用户数的增加,指标也会增加。
反相关,是说随着用户数的增加,某个指标在下降,比如内存空闲 随着用户数的增加,内存空闲越来越小,相反内存使用率越来越高。
一般选择默认的配置就行。
在设置场景时ramp up和ramp down越慢越好,当然也要平衡好时间
1、响应时间
2、响应的吞吐率,每秒中服务器响应的字节大小数,是指传输和返回的字节大小数,与服务器带宽和客户端带宽都有关系。
服务器带宽是用位来表示的,吞吐率除以8,来评估服务器的带宽。服务器带宽小的话肯定会影响到吞吐率,同时影响响应时间。
3、TPS:每秒事务数、TPM:每分钟事务数、TPH:每小时事务数
4、HPS每秒点击数,作用不太大,取决与虚拟用户数和响应时间,虚拟用户数越多点击数越多,响应时间越快点击数也会越多。
1、CPU:
1)CPU使用率 %Processor Time
2)处理器队列长度Processor Queue Length 2*内核数
一般处理器队列长度是内核数的2倍。
CPU使用率达到100%,但是队列不长,CPU还是可以继续处理队列的;队列很长,CPU使用率很小,CPU处理任务的速度会很慢。
CPU是有一级缓存、二级缓存、三级缓存的,CPU和一级缓存交换数据,一级缓存和二级缓存交换数据,二级缓存和内存交换数据,缓存越大,CPU和内存交互数据的频率就会比较低。
2、带宽:
1)每秒接收的数据量(低于下行带宽/8)
2)每秒发送的数据量(低于上行带宽/8)
除以8是因为带宽是比特位的单位,数据量是字节的单位,8位=1字节,所以要除以8.
每秒接收的数据量(低于下行带宽/8)是指从A传送给B数据量,这个数据量对于B来说要低于B的带宽/8,要不然B接收不了这么多数据,同理每秒发送的数据量(低于上行带宽/8)也是这个道理。
3、内存:
1)内存使用率,可用内存数量(M);
2)内存的页交换频率Page/sec,与虚拟内存的交换频率,越低越好,低就代表还有很多内存可以使用不需要放到虚拟内存中就可以直接使用内存。
因为内存的存储单位是页,所以说是页交互频率。
3)缓存
4)虚拟内存:利用一块硬盘区域模拟内存操作,内存很小,很贵,硬盘便宜,容量大,内存比硬盘贵100倍,内存比硬盘速度快大概100倍。
4、磁盘/IO:
所有的内容都会存到磁盘中,但是要运行时会放到内存中去调用。
1)硬盘使用率
2)硬盘队列长度
3)硬盘也是有缓存的
交互速度比较:CPU缓存>内存>磁盘>网络,其中CPU缓存速度会大于内存速度很多。
扩展:
1)系统级性能优化时,重点利用缓存还有数据库。
2)代码级性能优化时,SQL语句和算法优化很重要。减少内存用好内存和缓存,减少算法运算次数,运算次数决定了CPU的消耗,内存决定了资源占用。
线程池是用于管理多线程的一种机制。
线程消耗的是CPU资源,CPU资源是有限的。
服务器端可以设置支持的线程数,但是也不是无限制的可以设置很大,如果设置很大CPU资源肯定会不足,服务队列会很长。
如果把服务器的某个指标调的很大,这样数据库可能也会收到影响,所以不仅仅要考虑服务器的支撑也要考虑数据库的支撑,要找到一个平衡点,而不是满足一端的指标就行了。同时也要考虑带宽等的影响。
1、性能测试分析原则
从错误入手、从前端到后端、从里到外、从硬件到软件、层层深入,最后通过网络贯穿。所有的地方本身都可能有问题,他们之间的配合也可能是有问题的。
2、主要性能指标
TPS事务响应时间/吞吐量/吞吐率-衡量服务器处理能力
Hits点击率/网页细分-衡量和分析前端页面处理能力
系统资源-服务器硬件CPU\MEM\DISK\IO等情况
3、Analysis分析
如果事务执行失败、或者执行时间过长都需要去分析原因。
查看http响应码非200、300的,如果出现400、500等的错误就要去分析是什么问题。