性能测试连载 (27)-服务端瓶颈分析思路

概述

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

后端性能指标有CPU,内存,网络,jvm,I/O等等

分析思路

整体系统CPU利用率

内存利用率

磁盘I/O的利用率和延迟

网络利用率

CPU瓶颈分析

监控命令:vmstat、sar、dstat、mpstat、top、ps

类型度量方法衡量标准
利用率 1、vmstat 统计1-%id
2、sar -u 统计1-%idle
3、dstat 统计1-%idle
4、mpstat -P ALL 统计1-%idle
user%+sys%<70%(好)
70%<user%+sys%<=85%(坏)
负载 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

 

 

网络定位分析

监控命令:sar、ifconfig、netstat,以及查看net的dev速率。

通过查看发现收发包的吞吐率达到网卡的最大上限,网络数据报文有因为这类原因而引起的丢包、阻塞等现象都证明当前网络可能存在瓶颈。

为了减小网络对性能测试的影响,一般我们都在局域网中进行测试执行。

 

 

IO定位分析

I/O的TPS、平均I/O数据、平均队列长度、平均服务时间、平均等待时间、IO利用率(磁盘Busy Time%)等指标
监控命令:sar、iostat、iotop

 

 

cpu瓶颈分析思路

cpu有没有正常工作

1:top看CPU负载,vmstat看CPU利用率。下面三种情况说明cpu没有正常工作,需要看cpu在做什么
1)负载过高,利用率过低
2)负载过低,利用率过高
3)负载过低,利用率也低

 

 

cpu在做什么

1:vmstat看in和cs是否过高,如果过高,说明中断和上下文切换频繁

 


2:vmstat看usr和sys百分比。
1)如果sy百分比过高,说明cpu大部分时间花在了内核的系统调用
2)如果us百分比过高,说明cpu大部分时间花在了代码执行

 


3:vmstat看运行队列
1)运行队列r值远超cpu数,说明cpu负载过高
2)b值过高,说明大量进程处于IO等待,IO可能存在瓶颈

 

为什么cpu不正常工作

1:pidstat -p 【pid】 -w 1 10 看进程的主动和被动切换。

 

 

1)如果主动切换(cswch/s)过高,说明可能IO,内存资源可能不足
2)如果被动切换(nvcswch/s)过高,说明进程过多,cpu时间片不足

2:watch -d cat /proc/interrupts 查看系统中断

 

posted @ 2020-07-29 09:01  乐哈哈哈  阅读(152)  评论(0)    收藏  举报