概述

性能测试中,对服务端的指标监控也是很重要的一个环节。通过对各项服务器性能指标的监控分析,可以定位到性能瓶颈。

后端性能指标有CPU,内存,网络,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

r长期>cpu个数,cpu不足

runq-sz 长期>cpu个数,cpu不足

load average>cpu个数(cpu繁忙)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

内存定位分析

当物理内存不够时,会使用swap分区,所以性能测试过程中需要关注swap和mem的使用情况。

物理内存不够,大量的内存置换到swap空间,可能导致CPU和I/O的瓶颈。

监控命令:vmstat、sar、dstat、free、top、ps等

类型

度量方法

衡量标注

占用率

1、free 查看使用情况

2、vmstat

3、sar -r

4、ps

注意>=50%

告警>=70%

严重>=80%

满载

1、vmstat的si/so比例,swapd占比

2、sar -W 查看次缺页数

3、dmesg | grep killed

1、so数值大,且swapd已经占比很高,内存已经饱和

2、sar命令次缺页多意味内存已经饱和

3、内存不够用会触发内核的OOM机制

 

 

 

 

 

 

 

 

 

 

网络定位分析

监控命令: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,“%util”

2、sar -d,“%util”

3、cat /proc/pid/sched | grep iowait

注意>=40%

告警>=60%

严重>=80%

满载

1、iostat -xnz,“avgqu-sz ”>1

2、iostat await>70

IO疑似满载
错误

1、dmseg 查看io错误

2、smartctl /dev/sda

有错误信息