(一)常用性能指标
服务端资源占用情况分析主要包括CPU、IO、负载、内存、磁盘、网卡。只要有一个达到瓶颈说明服务端达到性能瓶颈。
1 CPU瓶颈
CPU使用率指的是除了空闲时间外的其他时间占总CPU时间的百分比,公式表示:CPU使用率=1-空闲时间/总CPU时间
当CPU利用率过高时,往往会出现服务器卡顿或者无响应的情况,从而影响服务器性能,从RT来看会使得瞬时RT变高,从而使得TPS下降。
关于CPU瓶颈的评判可从系统CPU使用情况和进程CPU占用情况两个方面分析:
(1)系统CPU使用率
%user:CPU执行用户进程的时间,包括nice(线程优先级调度)时间,由它可知当前用户进程的占用情况。
%system:CPU在内核运行的时间
%idle:处于空闲期,等待进程的运行
%iowait:iowait指的是CPU等待I/O操作完成所花费的时间。这个过程会导致CPU在执行idle进程空转,此时没有进程可运行。
瓶颈分析: 当us达到80%(平均单个)以上时,判定达到服务端瓶颈,说明用户进程长期占用CPU。如果iowait比例过大,说明存在IO瓶颈。
(2)进程CPU使用率
top命令会显示每个进程的CPU占用率,top默认的CPU占用率的是核数x100%,若某进程占用的CPU比例达到核心数*100%,说明达到了CPU瓶颈。
2 负载瓶颈
平均负荷值是指定时间段内队列里需要处理的进程数与该CPU能最大处理的进程数的比值。如果CPU Load刚好等于CPU可以并行处理的任务数量(总核数)说明刚好满负载,多一些则会出问题。
原因分析:一个个任务实际上就是一个个需要处理的进程,CPU处理任务时会采用时间片调度方式进行,当负载过高时,每个进程分配的时间就会变少,如果进程没有执行完会被挂起转而执行下一个进程,全部执行完以后才顺序处理未被执行的进程,因而会不断的产生进程间的调用,从而产生大量中断,造成系统的开销,影响服务器性能,直接造成每秒处理的请求数降低,即TPS下降。
其中,平均负载有三个值,分别对应1分钟、5分钟、15分钟内系统的平均负荷。
瓶颈分析:以第三个值作为观察指标
3 内存瓶颈
查看内存是否存在瓶颈,主要看是否还有可用的物理内存,如果缺少内存,会使得系统不停的做换入换出工作,从而导致系统响应明显变慢,使得RT过高,TPS下降。
命令:top 显示内存单位:KB
参数分析:
行参数:total:总物理内存 used:已经使用的物理内存 free:可用物理内存
shared:共享内存 buffers/cached:读写缓存/地址空间缓存 available:可用内存
(1)Mem 说明内存使用情况,主要包括总量、使用量、空闲量
(2)Swap 表示交换区的信息,表示可交换的总量、使用量和空闲的交换区
瓶颈分析:对于Mem,如果used接近total,说明物理内存已经用完,陷入内存瓶颈。
4 磁盘I/O瓶颈
性能测试过程中,如果被测服务对磁盘读写过于频繁,会导致大量请求处于IO等待的状态,系统负载升高,响应时间(RT)变长,吞吐量下降。
命令:sar -d 3 3600 > disk.log &
输出项说明:
rd_sec/s:每秒从设备读取的扇区数
wr_sec/s:每秒往设备写入的扇区数
avgrq-sz:发送给设备的请求的平均大小(以扇区为单位)
avgqu-sz:发送给设备的请求队列的平均长度
await:单次IO操作的时间(包括等待时间+服务时间)(单位:毫秒)
svctm:单次IO操作的服务时间(单位:毫秒,包含等待时间)
%util:IO操作时间占用的比例
svctm如果很接近await,说明基本没有等待,如果await远大于svctm,则说明I/O操作队列过长,处理速度慢。
瓶颈分析:如果%util接近100%,说明产生的I/O请求太多,I/O满负荷,该磁盘已经陷入瓶颈。
5 网络瓶颈
网络带宽定义:在固定时间可传输的数据量(单位:bps)。如果收发数据量达到带宽,这时收发数据量不可能再上升,这就是陷入到网络瓶颈中,该项指标直接影响TPS。
(1)网络带宽的查看
如何查看网络带宽?
前提:必须是root用户才能查看
1)查看机器网络端口,一般服务端机器网络端口只有一个为eth0
Usage:ifconfig
2)查看端口带宽
Usage:sudo ethtool xxx
然后看输出中的speed那一行,可知是百兆网、千兆网或者万兆网
(2)网络瓶颈的分析
监控网卡流量即收发数据包流量,看是否达到网卡的最高速度(网络带宽)。如果达到了,说明达到了网络瓶颈,需要进行网络优化。
连续采集数据命令:sar -n DEV 3 3600 > net.log &
包含参数:rxkB/s+txkB/s
rxkB/s:每秒接收的字节数(单位:KB/s)[网卡入口流量]
txkB/s:每秒发送的字节数(单位:KB/s)[网卡出口流量]
瓶颈分析:在压测过程中查看带宽和出/入口流量,如果网络入口/出口流量达到满带宽,则陷入网络瓶颈。但一般情况下是不会导致网络瓶颈的。
有疑问欢迎留言