在 VPS Linux 上设置 Sar 命令以监控 CPU、RAM 和硬盘

在管理 Linux VPS 时,监控系统资源(如 CPU、RAM、硬盘和网络)极为重要。这种监控可以确保服务器稳定高效地运行。sar 命令是帮助你跟踪这些资源的有用工具之一。在本文中,我们将学习如何使用 sar 命令来监控 Linux VPS 上的系统资源。

什么是 Sar 命令?

Sar(系统活动报告)命令是 Linux 系统上用于收集和显示系统性能报告的强大工具。该命令可以监控许多重要的系统因素,包括 CPU、RAM、硬盘和网络。sar 不仅可以帮助你监控当前的资源状态,还可以存储过去的性能数据以进行趋势分析。

Sar 命令的主要功能

  • CPU 监控:sar 可以帮助你检查 CPU 使用情况。包括系统和用户处理时间以及 CPU 空闲时间的百分比。
  • 监控内存(RAM:你可以使用 sar 来监控系统中已使用和未使用的内存量。
  • 硬盘监控:sar 提供有关硬盘活动的详细信息。包括读写数据量、等待时间以及与硬盘性能相关的参数。
  • 网络监控:sar 命令还支持网络活动监控。包括系统网络接口发送和接收的流量。

Sar 命令的优势

  • 系统资源监控:sar 可以实时监控系统性能,或监控历史记录以发现问题。
  • 长期性能分析:sar 可用于存储和分析几天或几周前的性能数据。有助于发现潜在的趋势或问题。
  • 更好的 Linux VPS 管理:有了 sar,监控和优化 VPS 资源变得简单。避免过载或不稳定。

sar 命令是一个强大的工具,可以帮助系统管理员维护服务器和 Linux VPS 的稳定性能。同时,它还提供了有关系统资源状态的洞察。

在 Linux VPS 上安装 Sar 命令

要使用 sar 命令,你需要在 Linux VPS 上安装包含 sar 命令的 sysstat 软件包。以下是一些流行发行版的安装方法:

在 Ubuntu/Debian

apt update sudo

sudo apt install sysstat

在 CentOS/RHEL

yum install sysstat

安装完成后,你可以立即使用 sar 命令。

如何使用 Sar 命令监控 CPU、RAM 和硬盘

以下是使用 sar 在 Linux VPS 上监控关键系统资源的方法:

CPU 监控

要监控 CPU 使用情况,请使用以下命令:

sar -u 1 5

其中:

  • -u:监控 CPU(CPU 使用率)。
  • 1:每秒测量一次。
  • 5:重复报告的次数(5 次)。

该命令的结果将通过以下参数显示 CPU 使用情况:

  • %user:用户进程占用的 CPU 时间。
  • %system:系统进程占用的 CPU 时间。
  • %idle:CPU 空闲时间的百分比。

内存监控(RAM

要监控 RAM 内存状态,请使用以下命令:

sar -r 1 5

其中:

  • -r:监控 RAM 内存。
  • 1:每秒测量一次。
  • 5:重复 5 次。

该命令将提供系统中总内存、已用内存和空闲内存的信息。

硬盘监控

要监控硬盘使用状态,请使用以下命令:

sar -d 1 5

其中:

  • -d:监控硬盘活动。
  • 1:每秒测量一次。
  • 5:重复 5 次。

该命令将显示有关硬盘活动的信息。包括每个硬盘的读写次数及其使用率。

在 Ubuntu 20.04 VPS 上运行 Sar 命令并分析结果

为了更好地了解如何在 Linux VPS 上使用 Sar 命令,本文详细介绍了如何在位于美国的 Ubuntu 20.04 VPS 上使用 Sar 命令,并分析运行命令后的结果。

安装步骤:

apt update

sudo apt install sysstat

监控 CPU:

sar -u 1 5

运行命令后得到的结果如下图所示。

使用 Sar 命令监控 CPU

结果分析:

  1. %user:用户任务(用户进程)占用的 CPU 时间。此处为 0.00,表示没有用户进程占用 CPU。
  2. %nice:低优先级任务(nice 进程)占用的 CPU 时间。值为 0.00,表示没有运行的 nice 进程。
  3. %system:系统任务(内核进程)占用的 CPU 时间。值为 0.00,表示系统未使用 CPU 资源。
  4. %iowait:CPU 等待 I/O(硬盘读写)的时间。值为 0.00,表示没有 I/O 拥塞。
  5. %steal:被虚拟化环境中的宿主机“窃取”的 CPU 时间。值为 0.00,表示没有资源受到影响。
  6. %idle:CPU 空闲时间。值为 99.80,表示 CPU 几乎没有被使用,处于空闲状态。

结论:该机器的 CPU 几乎完全空闲(%idle 非常高)。在监控时,没有进程占用大量 CPU 资源。

监控 RAM

sar -r 1 5

运行命令后得到的结果如下图所示。

使用 Sar 命令跟踪 RAM

结果中的列说明:

  • kbmemfree:空闲 RAM 内存,以千字节(kB)为单位。 示例:180736(约 176MB 的空闲内存)。
  • kbavail:可供进程使用且无需交换或释放缓存的可用内存。 示例:457992(约 447MB 可用)。
  • kbmemused:已用 RAM(总内存减去 kbmemfree),以千字节为单位。 示例:218548(约 213MB 的已用内存)。
  • %memused:相对于总 RAM 的已用内存百分比。 示例:24.41%(约 1/4 的总 RAM 正在使用)。
  • kbbuffers:用于缓冲区的内存(写入硬盘前的临时存储)。 示例:49968(约 48MB 用作缓冲区)。
  • kbcached:用作缓存的内存(存储临时数据以便快速访问)。 示例:330228(约 322MB 用作缓存)。
  • kbcommit:已“分配”给进程的内存(包括物理 RAM 和交换空间)。 示例:513104(约 501MB 已分配)。
  • %commit:已分配内存与总可用内存的比例。 示例:18.78%(不到 1/5 的内存已分配)。
  • kbactive:活跃内存。 示例:263348(约 257MB 活跃)。

结论:

  • 该机器总共使用了 24.41% 的 RAM(物理内存)。
  • 空闲内存约为 176MB,可用内存约为 447MB。
  • 系统有许多缓存和缓冲区以提高访问速度,缓存约为 322MB,缓冲区约为 48MB。
  • 内存使用率低,没有 RAM 短缺的迹象。

监控硬盘(硬盘驱动器)

sar -d 1 5

运行命令后得到的结果如下图所示。

Monitor-Disk-using-Sar-command

命令 sar -d 1 5 的结果用于以 1 秒为间隔监控硬盘设备的活动,并重复 5 次。详细分析如下:

结果中的列说明:

  • DEV:设备名称(例如,dev7-0、dev7-1)。
  • tps(每秒事务数):每秒发送到设备的 I/O 请求数量。
  • rkB/s(每秒读取 KB):从设备读取数据的速度(KB/s)。
  • wkB/s(每秒写入 KB):向设备写入数据的速度(KB/s)。
  • dkB/s(每秒丢弃 KB):丢弃的数据量(KB/s)。
  • areq-sz(平均请求大小):每个 I/O 请求的平均大小(KB)。
  • aqu-sz(平均队列大小):I/O 队列的平均大小。
  • await(平均等待时间):I/O 请求完成的平均等待时间(ms)。
  • %util(利用率百分比):设备忙于执行 I/O 操作的时间百分比。

分析:

  • 所有值均为 0:这表明在观察期间(5 秒)内,硬盘设备没有任何读写活动或其他操作。
  • %util = 0.00%:设备完全空闲,未被使用。
  • aqu-sz = 0.00 和 await = 0.00:没有 I/O 请求正在处理或在队列中等待。

评论:

如果这是正常状态,则系统可能在当时没有任何需要硬盘访问的任务。

如果你期望有硬盘活动,这个结果可能表明应用程序没有执行 I/O 访问,或者检查方式存在错误。

sar 命令是监控 Linux VPS 上系统性能的强大且有用的工具。它可以帮助你监控 CPU、RAM 和硬盘,快速发现性能问题,并优化系统资源,以确保你的 VPS 稳定运行。如果你正在管理 Linux VPS,不要错过安装和使用 sar,以保持系统的最佳性能。