CPU 负载过高 -?

CPU 负载过高 -?
top - 06:49:29 up 16 days,  4:04,  1 user,  load average: 1.29, 1.41, 1.51
Tasks: 113 total,   2 running, 111 sleeping,   0 stopped,   0 zombie
%Cpu(s): 89.3 us, 10.7 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1015912 total,    98976 free,   157212 used,   759724 buff/cache
KiB Swap:  2097148 total,  1861284 free,   235864 used.   644952 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
  835 root      20   0  734828  40864   8564 S  5.0  4.0 355:51.95 fortnoxd
20518 root      20   0  748864  41780  12884 S  4.0  4.1  64:35.14 travelpayd
 3147 root      20   0  982540  23532   6712 S  2.3  2.3 295:10.06 node
11230 root      20   0  679384  21044  13552 R  1.7  2.1   0:00.05 nodejs
30422 mongodb   20   0  319176   4184      0 S  0.7  0.4  66:08.82 mongod
    7 root      20   0       0      0      0 S  0.3  0.0  16:20.24 rcu_sched
  984 root      20   0       0      0      0 S  0.3  0.0   4:42.43 hwrng
29166 root      20   0   42084   3736   3176 R  0.3  0.4   0:00.23 top
    1 root      20   0   37968   5548   3584 S  0.0  0.5   0:32.93 systemd
    2 root      20   0       0      0      0 S  0.0  0.0   0:00.20 kthreadd
    3 root      20   0       0      0      0 S  0.0  0.0   3:19.36 ksoftirqd/0
    5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H
    8 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_bh
    9 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0
   10 root      rt   0       0      0      0 S  0.0  0.0   0:04.40 watchdog/0
   11 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kdevtmpfs

你好 Stackexchange,我最近遇到了一些有关 CPU 使用率过高的问题,我正在使用 Vultr 的付费服务,他们抱怨我使用了太多的 CPU 功率,哈哈,这是我的顶级列表,在 vultr 网站上说我在这台服务器上使用了 105% 的 CPU 功率,尽管我只看到可能使用了 12%?

是不是只有这 4 个过程消耗电力,还是还有其他因素也会导致高使用率?

835 root      20   0  734828  40864   8564 S  5.0  4.0 355:51.95 fortnoxd
20518 root      20   0  748864  41780  12884 S  4.0  4.1  64:35.14 travelpayd
 3147 root      20   0  982540  23532   6712 S  2.3  2.3 295:10.06 node
11230 root      20   0  679384  21044  13552 R  1.7  2.1   0:00.05 nodejs


root@server-nodes:/# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                1
On-line CPU(s) list:   0
Thread(s) per core:    1
Core(s) per socket:    1
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 60
Model name:            Virtual CPU 714389bda930
Stepping:              1
CPU MHz:               2399.996
BogoMIPS:              4799.99
Hypervisor vendor:     KVM
Virtualization type:   full
L1d cache:             32K
L1i cache:             32K
L2 cache:              4096K
L3 cache:              16384K
NUMA node0 CPU(s):     0

答案1

第一个也是最重要的问题:主机的性能是否满足您的要求。用户响应时间、吞吐量。如果不满足,请进行更改:提高工作负载效率或添加更多资源(更多 CPU、扩展到更多设备)。

您有一个 1 CPU 的盒子,有时会报告 1.5 负载平均值。平均而言,多个等待运行的任务将充分利用 1 CPU 盒子。(充分利用是否意味着停滞则是另一个问题。

从手册页中注意 top 正在测量什么:

%CPU——CPU 使用率自上次屏幕更新以来该任务所占的 CPU 时间,以占总 CPU 时间的百分比表示。

由于 top 中的最后更新间隔可能无法捕捉到 100% 的突发情况。查看 TIME 列以了解进程生命周期内消耗的总 CPU 数。

也可以尝试其他 Linux 性能工具还有很多.perf top例如将准确显示用户或内核代码中的顶级作业的位置。

相关内容