top状态查看

          系统平均负载高,但cpu,内存,磁盘io都正常

          

服务器负载暴增排查_内核态

系统平均负载

      1.平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数,它和CPU使用率并没有直接关系。
      2.可运行状态的进程,是指正在使用CPU或者正在等待CPU的进程,也就是我们常用ps命令看到的,处于R状态(Running 或 Runnable)的进程
      3.不可中断状态的进程则是正处于内核态关键流程中的进程,并且这些流程是不可打断的,比如最常见的是等待硬件设备的I/O响应,也就是我们在ps命令中看到的D状态(Uninterruptible Sleep,也称为Disk Sleep)的进程

     负载高的常见情况
        我们常见的负载高一般有这几种情况引起
        1.一个是cpu密集型,使用大量cpu会导致平均负载升高
        2.另外一个就是io密集型等待I/O会导致平均负载升高,但是CPU使用率不一定很高
        3.还有就是大量等待CPU的进程调度也会导致平均负载升高,此时的CPU使用率也会比较高

主机进程分析

        1.查看当前主机上运行哪些进程,并且各个进程当前的具体状态 ps aux

        2.使用ps -aux,可以看到大量的D状态的进程

        3.当某个服务创建大量的进程导致系统负载飙升的时候就需要通过此指令查看

         

服务器负载暴增排查_进程状态_02

       什么是D状态的进程

         

服务器负载暴增排查_进程状态_03

         

服务器负载暴增排查_内核态_04

  终止指定进程

          ps aux | grep xxx | grep -v grep | awk '{print $2}' | xargs kill -9      

查看负载

        

服务器负载暴增排查_进程状态_05

排查步骤

     1.先执行top  查看cpu 内存 io都是正常范围

     2.查看当前主机上的所有进程 

      ps是简单而强大的进程查看命令,而ps -aux和ps -ef是打印出所有进程

        

服务器负载暴增排查_进程状态_06

        

服务器负载暴增排查_进程状态_07

    进程状态表示

        

服务器负载暴增排查_内核态_08

       

服务器负载暴增排查_进程状态_09

主机进程状态查看方式

      1.如果要查看主机上各个进程当前的运行状态,cpu占比,内存占比.需要使用 ps  -aux

          

服务器负载暴增排查_进程调度_10

     2.如果需要查看主机上进程之间的父子关系 需要使用ps  -ef

         

服务器负载暴增排查_进程状态_11

        

服务器负载暴增排查_进程状态_12

       

服务器负载暴增排查_进程状态_13

       

服务器负载暴增排查_进程调度_14