LINUX 平均负载

LINUX 平均负载

我的服务器负载跳升至前 22,CPU 仅 50%,RAM 1858/5120。如何知道什么进程导致平均负载如此之高。Linux Debian

答案1

$ grep processor /proc/cpuinfo |wc -l
4

这将为您提供系统上的 CPU 数量。如果平均负载高于此数字,但 CPU 仅为 50%,则很有可能您的系统正在执行大量 IO。在这种情况下:

aptitude install iotop

iotop 将为您提供消耗磁盘 IO 的进程列表。

答案2

如何知道什么进程导致平均负载如此之高。

您可以使用top,按O(大写 o),然后按l(CPU 时间),然后Enter

答案3

僵尸进程也会影响平均负载,我建议:

mike@mike-:~$ ps -eo state |uniq -c
    171 S
      1 R
      1 D
      2 S

--> 在这里你可以计算每个状态的进程数

D(进程因等待资源而阻塞)

僵尸

--> D 状态的典型问题是使用 NFS 共享上的文件的进程不再回答...希望有帮助

答案4

您可以使用这三个命令之一。请阅读maninfo页面以获取更多信息。

正常运行时间——告知系统已运行了多长时间。

w——显示谁登录了以及他们正在做什么。

top——显示Linux进程

所有三个命令都会显示load average信息。top可能是最好的选择,因为它显示有关 CPU 使用率、内存使用率、优先级等的信息。

我引用一门课程的参考资料:

平均负载是给定时间段内的负载数的平均值。它考虑了以下过程:

  • 在 CPU 上积极运行。
  • 视为可运行,但正在等待 CPU 可用。
  • 休眠:即等待某种资源(通常是 I/O)可用。

我进一步引用解释平均负载

平均负载使用三组不同的数字显示,如下例所示:

最后一条信息是系统的平均负载。假设我们的系统是单 CPU 系统,0.25 表示在过去一分钟内,系统平均利用率为 25%。下一个位置的 0.12 表示在过去 5 分钟内,系统平均利用率为 12%;最后一个位置的 0.15 表示在过去 15 分钟内,系统平均利用率为 15%。如果我们在第二个位置看到 1.00 的值,则意味着在过去 5 分钟内,单 CPU 系统的平均利用率为 100%;如果我们想充分利用系统,这是很好的。对于单 CPU 系统,如果值超过 1.00,则意味着系统利用率过高:需要 CPU 的进程多于可用的 CPU。

如果我们有多个 CPU,比如说一个四 CPU 系统,我们会将平均负载数除以 CPU 数量。例如,在这种情况下,1 分钟的平均负载为 4.00 意味着整个系统在最后一分钟的利用率为 100% (4.00/4)。

短期增加通常不是问题。您看到的高峰可能是活动的爆发,而不是新的水平。例如,在启动时,许多进程启动,然后活动稳定下来。如果在 5 分钟和 15 分钟的平均负载中看到高峰,则可能值得关注。

相关内容