概述
性能测试中,对服务端的指标监控也是很重要的一个环节。通过对各项服务器性能指标的监控分析,可以定位到性能瓶颈。
后端性能指标有CPU,内存,网络,jvm,I/O等等
分析思路
-
整体系统CPU利用率
-
内存利用率
-
磁盘I/O的利用率和延迟
-
网络利用率
-
CPU瓶颈分析
监控命令:vmstat、sar、dstat、mpstat、top、ps
类型 | 度量方法 | 衡量标准 |
利用率 |
1、vmstat 统计1-%idle 2、sar -u 统计1-%idle 3、dstat 统计1-%idl 4、mpstat -P ALL 统计1-%idle |
user%+sys%<70%(好) 70%<user%+sys%<=85%(坏) 90%<=user%+sys%(糟糕) |
负载 |
1、vmstat的r值 2、sar -q ,“runq-sz” 3、load average 4、pidstat -p 【pid】 -w 1 10 |
r长期>cpu个数,cpu不足 runq-sz 长期>cpu个数,cpu不足 load average>cpu内核数(cpu繁忙) nvcswch/s 较大,cpu时间片不足 |
内存瓶颈分析
物理内存不够时就会使用swap分区,所以性能测试过程中需要关注swap和mem的使用情况。物理内存不够,大量的内存置换到swap空间,可能导致CPU和I/O的瓶颈。
监控命令:vmstat、sar、dstat、free、top、ps等
类型 |
度量方法 |
衡量标注 |
占用率 |
1、free -h 内存使用情况 2、sar -r |
使用率>=50% 良好 使用率>=70% 告警 使用率>=80% 内存严重不足 |
内存 交换
|
1、vmstat 内存使用情况 2、sar -w 上下文切换数量 |
1、swpd>0,si/so=0 正常 2、swpd>0,si/so>0 内存不足 3、catch较大,bi较小,文件系统效率较好 |
网络定位分析
监控命令:sar、ifconfig、netstat,以及查看net的dev速率。
通过查看发现收发包的吞吐率达到网卡的最大上限,网络数据报文有因为这类原因而引起的丢包、阻塞等现象都证明当前网络可能存在瓶颈。
为了减小网络对性能测试的影响,一般我们都在局域网中进行测试执行。
类型 | 度量方法 | 衡量标准 |
使用情况 |
1、sar -n DEV 的收发计数大于网卡上限 2、ifconfig RX/TX宽带超过网卡上限 3、cat /proc/net/dev的速率超过上限 4、nicstat的util基本满负荷 |
1、收发包的吞吐率达到网卡上限 2、有延迟 3、有丢包 4、有阻塞 |
满载 |
1、ifconfig dropped 有计数 2、netstat -s "segments retransmited"有计数 3、sar -n EDEV,rxdrop/s txdrop/s有计数 |
有丢包统计 |
错误 |
1、ifconfig,“errors” 2、netstat -i,RX-ERR TX-ERR 3、sar -n EDEV,rxerr/s txerr/s 4、ip -s link, “errors” |
错误有计数 |
IO定位分析
I/O读写频繁的时候,如果I/O得不到满足会导致应用的阻塞。
需要考虑I/O的TPS、平均I/O数据、平均队列长度、平均服务时间、平均等待时间、IO利用率(磁盘Busy Time%)等指标
监控命令:sar、iostat、iotop
类型 | 度量方法 | 衡量标准 |
使用率 |
1、iostat -xz 磁盘繁忙率 2、sar -d 磁盘繁忙率 |
%util=40% 良好 %util>=60% 告警 %util>=80% 严重繁忙 |
队列 |
1、iostat -xnz,运行队列 |
“avgqu-sz ”>1 运行队列过长 |
iowait |
1、vmstat wa值 |
wa>20 I/O 等待严重 bi/bo/wa 同时过大,IO出现了瓶颈 |