linux CPU使用率过高或负载过高的处理思路

Posted 王之迷惑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux CPU使用率过高或负载过高的处理思路相关的知识,希望对你有一定的参考价值。

1、查看系统CPU负载及使用率的命令为:top    vmstat 

     top 命令:查看进程级别的cpu使用情况。

     vmstat 命令:查看系统级别的cpu使用情况。

     下面通过具体的图例来分析:

     1.1  top 命令可以查看进程的CPU、内存等资源的使用情况。      

    在top命令运行过程中可以通过top的内部命令做显示方式的控制。   

       1- 开启或关闭显示所有cpu使用详细情况

  l - 关闭或开启第一部分第一行 top 信息的表示

  t - 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示

  m - 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示

  N - 以 PID 的大小的顺序排列表示进程列表(第三部分后述)

  P - 以 CPU 占用率大小的顺序排列进程列表 (第三部分后述)

  M - 以内存占用率大小的顺序排列进程列表 (第三部分后述)

  h - 显示帮助

  n - 设置在进程列表所显示进程的数量

  q - 退出 top

  s - 改变画面更新频率(输入数字)

     1.2 vmstat命令可以查看系统整体的cpu,内存的使用情况

          

         r: 表示系统中 CPU 等待处理的线程。由于 CPU 每次只能处理一个线程,所以,该数值越大,通常表示系统运行越慢。

        us:用户模式消耗的 CPU 时间百分比。该值较高时,说明用户进程消耗的 CPU 时间比较多,比如,如果该值长期超过 50%,则需要对程序算法或代码等进行优化。

        sy:内核模式消耗的 CPU 时间百分比。

        wa:IO 等待消耗的 CPU 时间百分比。该值较高时,说明 IO 等待比较严重,这可能磁盘大量作随机访问造成的,也可能是磁盘性能出现了瓶颈。

        id:处于空闲状态的 CPU 时间百分比。如果该值持续为 0,同时 sy 是 us 的两倍,则通常说明系统则面临着 CPU 资源的短缺。

2、详细操作进程占用cpu较高和cpu负载较高

    2.1 使用top直接终止cpu消耗大的进程:

          top命令查看对cpu消耗大的进程,直接输入"k",然后输入相应进程的PID号即可终止该进程。

         

    2.2 通过top观察cpu很空闲,但是负载比较高的情况:

          load average 是对 CPU 负载的评估,其值越高,说明其任务队列越长,处于等待执行的任务越多。
          出现此种情况时,可能是由于僵死进程导致的。可以通过指令 ps -axjf  查看是否存在 D 状态进程。
          D 状态是指不可中断的睡眠状态。该状态的进程无法被 kill,也无法自行退出。只能通过恢复其依赖的资源或者重启系统来解决。

 

 

  

 

     

以上是关于linux CPU使用率过高或负载过高的处理思路的主要内容,如果未能解决你的问题,请参考以下文章

linux 性能优化-- cpu 切换以及cpu过高

CPU内存IO负载过高排障方法及解决方案

系统CPU负载过高CPU使用率不高的问题

cpu负载突刺问题排查

Linux里面cpu占用太高排查思路是啥?

Linux系统CPU/内存使用率过高的问题排查