在管理 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
运行命令后得到的结果如下图所示。
结果分析:
- %user:用户任务(用户进程)占用的 CPU 时间。此处为 0.00,表示没有用户进程占用 CPU。
- %nice:低优先级任务(nice 进程)占用的 CPU 时间。值为 0.00,表示没有运行的 nice 进程。
- %system:系统任务(内核进程)占用的 CPU 时间。值为 0.00,表示系统未使用 CPU 资源。
- %iowait:CPU 等待 I/O(硬盘读写)的时间。值为 0.00,表示没有 I/O 拥塞。
- %steal:被虚拟化环境中的宿主机“窃取”的 CPU 时间。值为 0.00,表示没有资源受到影响。
- %idle:CPU 空闲时间。值为 99.80,表示 CPU 几乎没有被使用,处于空闲状态。
结论:该机器的 CPU 几乎完全空闲(%idle 非常高)。在监控时,没有进程占用大量 CPU 资源。
监控 RAM
sar -r 1 5
运行命令后得到的结果如下图所示。
结果中的列说明:
- 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
运行命令后得到的结果如下图所示。
命令 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,以保持系统的最佳性能。