(一)常用性能指标

服务端资源占用情况分析主要包括CPU、IO、负载、内存、磁盘、网卡。只要有一个达到瓶颈说明服务端达到性能瓶颈。
 
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分钟内系统的平均负荷。
     瓶颈分析:以第三个值作为观察指标
 
内存瓶颈 
 
  查看内存是否存在瓶颈,主要看是否还有可用的物理内存,如果缺少内存,会使得系统不停的做换入换出工作,从而导致系统响应明显变慢,使得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)[网卡出口流量]
      瓶颈分析:在压测过程中查看带宽和出/入口流量,如果网络入口/出口流量达到满带宽,则陷入网络瓶颈。但一般情况下是不会导致网络瓶颈的。
posted @ 2020-05-27 07:32  FCity  阅读(751)  评论(0编辑  收藏  举报