您当前的位置: 首页 > 

恐龙弟旺仔

暂无认证

  • 0浏览

    0关注

    282博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

cpu平均负载高的几种情况

恐龙弟旺仔 发布时间:2022-03-20 10:58:07 ,浏览量:0

前言:

每次排查性能相关问题的时候,我们都会先通过监控来查看下当前机器的CPU负载,根据负载结果值的输出,来判断当前CPU的基本状况。

那么什么是CPU负载呢?具体CPU负载多少才算是正常的呢?有哪些情况会导致CPU负载高呢?

今天我们就来统一说明下。

注意:笔者使用ubuntu:18.04版本镜像创建docker 容器,如果没有相关命令,则需要提前装载好

1.CPU负载的查看

通过top命令或者uptime命令可以查看到

1.1 top命令
root@7bc18553126f:/# top
top - 02:10:14 up 22:10,  0 users,  load average: 8.08, 6.68, 3.56
Tasks:  15 total,   9 running,   6 sleeping,   0 stopped,   0 zombie
1.2 uptime命令
root@7bc18553126f:/# uptime
02:10:23 up 22:10,  0 users,  load average: 8.07, 6.72, 3.60

上面两个命令中load average所展示的结果就是当前CPU的负载值,这三个值分别代表:1min 5min 15min分钟内的平均负载值。

2.CPU平均负载的定义

通过1我们知道了如何查看CPU负载,那么什么是CPU负载呢?

标准答案是:单位时间内,系统处于可运行状态和不可中断状态的平均进程数。

可运行状态:正在使用CPU或者正在等待CPU的进程

不可中断状态:处于内核态关键流程中的进程,不可被打断,如等待硬件设备IO响应

通过命令ps我们可以查看到当前有哪些进程,如下所示:

root@7bc18553126f:/# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root     42290  0.2  0.1   3020  2340 pts/1    S+   01:00   0:13 watch -d uptime
root     49918  0.0  0.1   5292  2384 pts/3    R+   02:23   0:00 ps aux

STAT这一列就代表当前进程的状态,具体有哪些状态呢?我们可以通过man ps来查看到:

               D    uninterruptible sleep (usually IO)
               R    running or runnable (on run queue)
               S    interruptible sleep (waiting for an event to complete)
               T    stopped by job control signal
               t    stopped by debugger during the tracing
               W    paging (not valid since the 2.6.xx kernel)
               X    dead (should never be seen)
               Z    defunct ("zombie") process, terminated but not reaped by its parent

正常运行情况下的进程处于R状态(已执行或等待执行);不可中断进程处于D状态;

那么CPU 平均负载就是单位时间内处于R状态+D状态的进程数。

3.CPU平均负载多少比较合适?

理论上来说:最好的状态就是每个CPU有一个进程在运行是最好的(如我们的机器是4C,那么有4个正在运行的进程就非常完美)

依据业界经验值而言:当load average

关注
打赏
1655041699
查看更多评论
立即登录/注册

微信扫码登录

0.0470s