如何在 Linux 上使用 sar 命令
已发表: 2022-06-16 sar
命令可让您查看 Linux 计算机不同元素的性能统计信息,包括实时数据和历史数据。 我们将向您展示如何使用这一重要资源。
相关:如何在 Chromebook 上查看系统性能统计信息
sar 命令
sar
命令或系统活动报告器是sysstat
包的一部分。 它捕获一组统计信息,例如 CPU 负载、内存分页、内存利用率、交换使用情况、网络 I/O 等等。 它使您能够以实时快照的形式访问这些数据(向您显示计算机上正在发生的事情)和历史报告。
它作为守护进程在后台运行,每十分钟收集一组数据。 当天的数据被写入一个文本文件。 午夜过后,它被转换为二进制文件。 这些文件每个月都会被覆盖,因此它们不会稳定地吞噬您的硬盘容量。
sar
命令允许您询问系统并查看统计信息。 但首先,您需要安装sysstat
包。
安装 sysstat 包
安装sysstat
非常简单。 我们使用你的 Linux 系统的包管理器来安装它,然后使用systemd
来启用和启动后台守护进程。
要在 Ubuntu 上安装sysstat
,我们使用 apt:
sudo apt install sysstat
要在 Fedora 上安装sysstat
,请输入:
须藤 dnf 安装 sysstat
为了在 Manjaro 上安装 sysstat,我们使用 pacman:
sudo pacman -S sysstat
安装sysstat
后,我们需要启用它,以便它可以在每次启动计算机时作为后台进程(后台进程)运行,并且我们需要现在启动它以便我们可以立即使用它。 我们使用systemd
实用程序系列的一部分systemctl
来启用和启动守护进程。
sudo systemctl 启用 sysstat
sudo systemctl start sysstat
要查看您正在使用的sar
版本并确保它正在响应,您可以使用-V
(版本)选项:
sar -V
使用 sar 进行实时统计
您可以使用sar
来查看您的计算机内正在发生的事情。 而且因为快照就是这样——特定时间点的播放状态——有时趋势更有用,你可以让sar
显示几个快照,它们之间有指定的秒数。
中央处理器统计
要查看间隔两秒的三组 CPU 统计信息,我们将使用此命令,该命令使用-u
(CPU) 选项。 请注意,间隔是第一位的。 因此,此命令读取为“以两秒为步长显示三组数据的 CPU 统计信息”。
sar -u 2 3
拉伸终端窗口可使表格整齐排列,因此更易于阅读。
第一列的标题是命令执行的时间。 列中的值是收集每组数据的时间。 其他列是:
- CPU :CPU 核心的数量,或
ALL
为所有核心的平均值。 - %User :在用户级别(“用户空间”)运行应用程序所花费的时间百分比。
- %Nice :在用户级别运行应用程序所花费的时间百分比,优先级良好。
- %system :在内核中系统级别执行进程所花费的时间百分比。
- %iowait :CPU 因等待磁盘 I/O 请求而空闲的时间百分比。
- %steal :在虚拟机中,这是由于硬件主机的 CPU 正在为不同的虚拟机服务而导致虚拟 CPU 空闲的时间百分比。
- %idle :CPU 在没有任何挂起的磁盘 I/O 请求的情况下空闲的时间百分比。
最后一行是前面几行的平均值。
要查看特定内核的统计信息,请使用-P
(每处理器)选项。 后面是 CPU 内核的编号,或者内核编号的列表或范围,例如0,1,4
或4-8
。
此命令查看三组数据,它们之间间隔一秒,对于核心 1。请记住,核心从零开始编号。
sar -P 1 1 3
内存分页统计
-B
(分页)选项使sar
显示与内存分页到硬盘驱动器相关的统计信息。 我们将要求两组信息,它们之间有五秒钟的时间。
sar -B 5 2
这些列包含以下信息。
- pgpgin/s :系统每秒从硬盘中调入(检索)的千字节总数。
- pgpgout/s :系统每秒调出到硬盘的千字节总数。
- fault/s :系统每秒产生的次要和主要页面错误数。
- majflt/s :系统每秒发生的重大故障数,需要从磁盘加载内存页面。
- pgfree/s :系统每秒放置在空闲列表中的页数。
- pgscank/s :内存管理系统
kswapd
守护进程每秒扫描的页数。 - pgscand/s :每秒直接扫描的页数。
- pgsteal/s :系统每秒从缓存中回收的页数。
- %vmeff :计算为
pgsteal
/pgscan
,这是页面回收效率的一个指标。
I/O 传输速率
要查看 I/O 和传输率统计信息,请使用-b
(注意,小写“b”)选项。 我们要求三组数据,它们之间有四秒。
sar -b 4 3
这就是列的内容。
- tps :每秒向物理设备发出的传输请求总数。 请注意,这是请求的计数。 他们可能并非都成功了。
- rtps :每秒向物理设备发出的读取请求总数。
- wtps :每秒向物理设备发出的写入请求总数。
- dtps :每秒向物理设备发出的丢弃请求总数。
- bread/s :从物理设备读取的数据总量。 该数字以每秒 512 字节的块的形式给出。
- bwrtn/s :每秒写入物理设备的数据总量(以块为单位)。
- bdscd/s :每秒丢弃的数据总量,以块为单位。
您可以选择查看更多类别的信息。 它们都以相同的方式使用。 您还可以使用-A
(all) 选项来查看sar
可以扔给您的所有内容的完整转储。
查看 sar 手册页以获取完整列表。
相关:什么是读/写速度,它们为什么重要?
使用 sar 进行历史统计
要查看任何历史数据,只需将-s
(开始)和-e
(结束)选项 time 添加到任何常用的sar
命令。 时间以 24 小时制表示。
要查看今天06:30 到 07:15 之间的 CPU 负载情况,我们将使用此命令。
sar -u -s 06:30:00 -e 07:15:00
要查看前一天的情况,请使用数字作为选项标志。 数字表示报告的日期。 -1
选项表示昨天, -2
选项表示两天前,依此类推。
让我们使用昨天的数据在 13:00 到 13:00 之间生成一个报告。
sar -u -1 -s 13:00:00 -e 13:30:00
指定您希望报告的日期的另一种方法是在命令行上使用当天数据文件的名称。 我们使用-f
(文件名)选项来做到这一点。
每日文件称为“saXX”,其中 XX 替换为月份中的某天。 它们是在 Linux 计算机的日志文件夹中创建的。 sar
日志文件夹可能称为“/var/log/sa/”或“/var/log/sysstat/”。
在 Ubuntu 上,它是“/var/log/sysstat/”,因此我们查看本月 21 日 14:00 到 14:30 之间的 CPU 使用情况的命令格式如下所示:
sar -u -s 14:00:00 -e 14:30:00 -f /var/log/sysstat/sa21
信息就是力量
sar
肯定会为您提供足够的信息,以便您对计算机的性能做出明智的决定。
如果您担任支持角色 - 或者您是朋友和家人的技术支持 - 能够查看历史数据是开始深入研究今天报告给您但实际上昨天发生的问题的好方法。 或者上周。
相关:系统慢? 如何查看 Linux 是否受内存、CPU 或 IO 限制