了解Linux和其他类Unix系统上的平均负载

Linux、Mac和其他类似Unix的系统显示“平均负载”数字。这些数字告诉您系统的CPU、磁盘和其他资源有多忙。它们一开始并不是不言而喻的,但是很容易熟悉它们。

无论您使用的是Linux台式机还是服务器,是基于Linux的路由器固件,还是基于Linux或BSD的NAS系统,甚至是MacOSX,您都可能在某个地方看到过“平均负载”度量。

负载与平均负载

相关:什么是Unix,它为什么重要?

在类Unix系统(包括Linux)上,系统负载是系统执行的计算工作的度量。此测量值显示为数字。完全空闲的计算机的平均负载为0。使用或等待CPU资源的每个正在运行的进程都会使平均负载增加1。因此,如果您的系统负载为5,则有5个进程正在使用或等待CPU。

UNIX系统传统上只统计等待CPU的进程,但Linux也计算等待其他资源的进程-例如,等待从磁盘读取或写入磁盘的进程。

就其本身而言,负载数字并没有太大的意义。一台计算机可能在一个瞬间的负载为0,在下一个瞬间的负载为5,因为有几个进程使用CPU。即使您可以在任何给定时间看到负载,这个数字基本上也是没有意义的。

这就是类Unix系统不显示当前负载的原因。它们显示平均负载-几个时间段内计算机负载的平均值。这使您可以查看您的计算机已经执行了多少工作。

查找平均负载

相关:如何从Linux终端管理进程:您需要知道的10条命令

平均负载显示在许多不同的图形和终端实用程序中,包括top命令和图形GNOME系统监视器工具。但是,查看平均负载的最简单、最标准化的方法是在终端中运行uptime命令。此命令显示计算机的平均负载以及开机时间。

uptime命令适用于Linux、MacOSX和其他类Unix系统。如果您使用的是具有Web界面的基于Linux或BSD的设备-例如DD-WRT路由器固件或FreeNAS NAS系统-您可能会在其状态页面中的某个位置看到平均负载。

了解平均负载输出

第一次看到平均负载时,这些数字看起来相当没有意义。以下是一个平均负载读数示例:

从左到右,这些数字显示过去一分钟、过去五分钟和过去十五分钟的平均负载。换句话说,上述输出意味着:

省略时间段以节省空间。一旦您熟悉了时间段,您就可以快速浏览负载平均数字并理解它们的含义。

这些数字到底是什么意思?

让我们使用上面的数字来理解平均负载的实际含义。假设您使用的是单CPU系统,这些数字告诉我们:

您的系统可能有多个CPU或多核CPU。负载平均数在这样的系统上的工作方式略有不同。例如,如果单CPU系统上的平均负载为2,这意味着您的系统超载了100%-在整个时间段内,一个进程在使用CPU,而另一个进程在等待。在具有两个CPU的系统上,这将是完全使用-两个不同的进程一直在使用两个不同的CPU。在具有四个CPU的系统上,这将是使用率的一半-两个进程使用两个CPU,而两个CPU处于空闲状态。

要了解平均负载数量,您需要了解您的系统有多少个CPU。平均负载6.03表示具有单个CPU的系统严重超载,但是在具有8个CPU的计算机上就可以了。

平均负载在服务器和嵌入式系统上特别有用。您可以浏览一下它来了解您的系统的运行情况。如果它超载,您可能需要处理浪费资源的进程,提供更多硬件资源,或者将一些工作负载转移到另一个系统。