• 主机负载高cpu使用低的一次排查


    主机load average异常

    总结报告

     

    1.涉及主机:

     

    涉及主机:

    jzjsywzcxt1-core-r-9

    ip:

     

    系统版本:

    CentOS Linux release 7.4.1807 (Core)

    内核版本:

    3.10.0-693.43.1.el7.x86_64

     

    2.故障描述:

     

    故障描述:

    1. 业务反馈主机响应慢,经排查主机load average负载值偏高。

     

     

     

     

     

    1. 排查以及实施操作

      3.1 排查系统资源

      CPU

    2. 排查cpu使用率正常。

      IO等待和cpu空闲正常

      内存

      物理内存较为紧张,可利用内存充裕。不影响load average

      磁盘

      因为业务使用的是NFS挂载卷,存储反馈nfs侧读写正常

      本地磁盘IO读写正常

       

      以上排查结果均无太大问题,思路转到进程上

      进程

      经检查,发现进程名为ftpTrans的数量很多,且状态为D状态,

      反馈此进程为业务相关进程。

       

       

       

       

       

       

      在继续排查之前先了解其相关知识

      Load average描述

      Load average的定义

      系统平均负载被定义为在特定时间间隔内运行队列中的平均进程树。如果一个进程满足以下条件则其就会位于运行队列中:

      - 它没有在等待I/O操作的结果

      - 它没有主动进入等待状态(也就是没有调用'wait')

      - 没有被停止(例如:等待终止)

       

      Linux上的 load average 除了包括正在使用CPU的进程数量和正在等待 CPU 的进程数量之外,还包括 uninterruptible sleep 的进程数量。通常等待 IO 设备、等待网络的时候,进程会处于 uninterruptible sleep 状态。Linux 设计者的逻辑是,uninterruptible sleep 应该都是很短暂的,很快就会恢复运行,所以被等同于 runnable。然而uninterruptible sleep 即使再短暂也是 sleep,何况现实世界中 uninterruptible sleep 未必很短暂,大量的、或长时间的 uninterruptible sleep 通常意味着 IO 设备遇到了瓶颈。

       

      D状态进程描述(不可中断的睡眠状态)

      产生原因:进程向内核发起io,网络等请求时,内核去分配其资源给予进程,但此时磁盘繁忙资源紧张,或者是网络繁忙拥堵的时候,内核无法将进程需要的资源分配给进程,此时内核要求进程继续等待,也就是D状态,直到资源可以分配给进程的时候,才会转换为R和其它状态。也就是说如果内核由于某些原因无法申请到资源,进程将长时间处于D状态。

       

      影响:进程处于D状态是正常的,但是需要注意的是 D 状态的进程会增加系统的平均负载。

       

       

       

       

       

       

       

       

       

       

       

      在了解了load averageD状态之后,我们可以排查本主机系统的状态情况。

       

      查看网络连接,发现很多关于ftp的网络连接,且一直频繁的波动,说明业务的请求很高。

       

      重点排查ftptrans进程的情况

      可以看到ftptrans进程多为D状态,且会占用一定的cpu

      ftptrans进程总数量在150-350左右波动

      处于状态Dftptrans进程数量也十分之多,峰值可以达到100以上

      此状态的ftptrans进程数量在波动之中,正常情况下D状态会转变为其它状态。

      发现很多ftptrans进程且长时间处于D状态下,数量在50以上

       

      高峰期:发现ftptrans进程数量突增300多,D状态此时也增至96load负载显著提升。

      一般时段,发现ftptrans进程数量降低到169D状态减少至58load负载显著降低

    3.  

       

      3.6日志排查

      1.没有发现异常

       

    4. 结论

      经过排查,主机load average负载主要影响因素是ftptrans进程数量,且长时间处于D状态下ftptrans进程数量升高会导致load average值增高明显,间接影响了响应速度。

       

      建议:

      1. ftptrans进程D状态主要是等待io资源和网络时间过长产生的,初步怀疑由于该主机ftp并发量大,且为ftp进程IO读写要求高,导致主机资源利用率过高,排查发现主机负载均已超过CUP核数值,且物理内存使用率常年在百分之九十以上,建议拆分业务,或增加主机资源。
      1. 长时间处于D状态下的进程可能无法杀死,此状态下的进程需要释放,建议重启主机。
  • 相关阅读:
    ASCII,Unicode,UTF
    C#值类型和引用类型2
    C#中使用Foreach
    CSS基础(2)
    CSS基础
    HTML基础
    MySQL高级
    MySQL和Python交互案例练习(2)
    MySQL和Python交互案例练习(1)
    外键SQL语句的编写
  • 原文地址:https://www.cnblogs.com/zcyy/p/16223703.html
Copyright © 2020-2023  润新知