概述
性能测试中, 对服务端的指标监控也是很重要的一个环节. 通过对各项服务器性能指标的监控分析, 可以定位到性能瓶颈.
后端性能指标有 CPU, 内存, 网络, I/O 等等
分析思路
整体系统 CPU 利用率
内存利用率
磁盘 I/O 的利用率和延迟
网络利用率
CPU 定位分析
CPU 利用率大于 50%, 需要注意; 大于 70%, 需要密切关注; 高于 90%, 情况比较严重.
监控命令: 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 | 注意 & gt;=50% 告警 & gt;=70% 严重 & gt;=90% |
满载 | 1、vmstat 的 r 值 & gt; cpu 逻辑颗数 2、sar -q ,“runq-sz”>cpu 逻辑颗数
| 运行队列大于 1 时,证明已经有一定的负载 |
内存定位分析
当物理内存不够时, 会使用 swap 分区, 所以性能测试过程中需要关注 swap 和 mem 的使用情况.
物理内存不够, 大量的内存置换到 swap 空间, 可能导致 CPU 和 I/O 的瓶颈.
监控命令: vmstat,sar,dstat,free,top,ps 等
类型 | 度量方法 | 衡量标注 |
占用率 | 1、free 查看使用情况 2、vmstat 3、sar -r 4、ps | 注意 & gt;=50% 告警 & gt;=70% 严重 & gt;=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” | 错误有计数 & nbsp; |
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 | 注意 & gt;=40% 告警 & gt;=60% 严重 & gt;=80% |
满载 | 1、iostat -xnz,“avgqu-sz ”>1 2、iostat await>70 | IO 疑似满载 |
错误 | 1、dmseg 查看 io 错误 2、smartctl /dev/sda | 有错误信息 |
来源: https://www.cnblogs.com/Zfc-Cjk/p/11262924.html