监视Linux服务器是系统管理的重要部分。有很多方法和工具可以监视Linux服务器。System Activity Reporter或简称sar是最流行和最有用的工具之一。Sar可以将磁盘、CPU、内存、网络等不同子系统的系统统计数据保存到文件中,并用于查看历史性能指标。也有不同的工具来提供Sar统计数据的图形表示。Sar以指定的间隔保存系统统计信息。我们将在本教程中详细介绍它们。
安装
Sar由提供 sysstat
工具,可以从官方存储库和各种发行版安装。
$ sudo apt install sysstat

语法
我们将使用以下语法 sar
命令。
sar [options] [interval] [count]

救命
使用sar命令获得帮助的简单而快速的方法是 -h
选项如下。
$ sar -h

显示CPU状态
在监视中,最需要跟踪的服务器指标之一是CPU使用率。我们将提供 -u
CPU统计选项。还有,数字 1
指定时间间隔和 3
计数,这是多少时间统计将被打印。
$ sar -u 1 3

在本例中,CPU列提供了所有CPU的度量都已提供的信息。还有用于性能度量的时间信息。
-
%user
列用于显示用户端负载 -
%system
列用于显示与系统相关的负载 -
%idle
列显示未使用的CPU资源数量。在这种情况下,负载非常低,空闲值的范围是%%97
显示特定的所有CPU统计信息
在上一个示例中,我们已经查看了一些流行且最有用的CPU统计数据。但在某些情况下,这是不够的,我们可能需要更多关于CPU的数据 iowait
. 这些数据可以用 ALL
后选项 -u
就像下面一样。
$ sar -u ALL 1 3

在这个例子中,我们可以看到额外的列,如 %iowaint
%irq
, %gnice
.
显示特定的CPU统计信息
正如我们所知,现代cpu提供了多个内核以获得更高的性能。在默认情况下提供CPU统计的同时,提供了所有核心度量。但确实有 -P
选项,该选项将筛选并仅提供如下所示的指定核心指标。在本例中,我们希望获得第二个核心信息。请记住,核心索引从0开始,这意味着第一个核心编号为0。
$ sar -P 1 1 3

我们可以从截图中看到,第一个核心是用 -P 1
同时还提供了间隔、计数等参数。如果我们 看看CPU列,我们可以看到核心索引1是按我们的预期打印的。
相关文章: 如何检查和监控电脑/个人电脑的温度?
显示内存统计信息
Linux服务器的另一个重要性能指标是内存。内存性能可以通过 -r
参数。
$ sar -r 1 3

我们可以看到很多关于内存的信息。
-
kbmemfree
列将可用内存显示为KB -
kbmemused
列以千字节的形式显示已用内存 -
%memused
列显示已用内存的百分比
显示交换统计信息
交换是多年前使用的一种内存增量机制。目前,系统管理员不喜欢这种方法,因为内存价格低,交换性能不好。交换数据可以通过 -S
选项。
$ sar -S 1 3

正如我们从输出中看到的,在这个Linux服务器中没有交换使用。
-
kbswpfree
列以KB为单位显示可用交换大小 -
kbswpused
列以千字节为单位显示已使用的交换大小 -
%swpused
列以百分比形式显示已使用的交换大小
显示I/O统计信息
木卫一 是Linux系统的另一个监视指标。 IO参数 -b
提供有关每秒事务、读写事务等的信息。
$ sar -b 1 3

-
tps
列显示每秒的事务数 -
rtpd
列显示每秒读取事务数 -
wtps
列显示每秒写入事务数 -
bread/s
列显示读取第二个计数的字节 -
wread/s
列显示字节写入第二个计数
显示特定磁盘I/O统计信息
也可以使用sar命令收集块设备或磁盘IO统计信息。要获取此信息,必须选择 -d
.
$ sar -d 1 3

-
DEV
列显示设备的次要和主要编号,如dev252-0 -
tps
列显示每秒的事务数 -
rd_sec/s
柱 显示 读取操作在一秒钟内完成 -
we_sec/s
柱 显示 写入操作在一秒钟内完成 -
%util
列显示总利用率百分比
相关文章: 如何使用Linux dmesg命令打印系统日志?
显示磁盘名称
在前面的示例中,我们列出了默认情况下具有相关磁盘设备主要和次要编号的统计信息。如果我们在Linux系统上有很多磁盘,从人的角度来看这是不可读的。 -p
选项可用于列出具有本机名称的磁盘设备,如 sda
, vda
等。
$ sar -p -d 1 3

显示上下文开关状态
正如我们所知,进程并不是在它们的生命周期中以各种方式运行的。有时他们会睡觉或等待一些信息。这种状态变化称为上下文切换。有关上下文切换的信息可以通过 -w
选项。
$ sar -w 1 3

显示网络统计信息
可以使用选项打印网络统计信息 -n
. 在选项之后,还必须提供关键字。在本例中,我们将打印与设备相关的度量。
$ sudo sar -n DEV 1 3
-
IFACE
列显示相关接口名称 -
rxpck/s
列显示接收的数据包计数 -
txpck/s
列显示传输的数据包计数 -
rxkB/s
列显示接收的数据包大小 -
txkB/s
列显示已传输 数据包大小 -
%ifutil
列显示接口使用率或加载百分比
我们提供了 -n DEV
获取设备相关数据。但除DEV之外,还有其他子系统可以获取信息。这里有一些
-
IP
显示IP统计信息 -
TCP
显示TCP统计信息 -
UDP
显示UDP统计信息 -
ALL
显示上面的所有静态和我们没有提到的静态
$ sudo sar -n IP 1 3
显示分页状态
众所周知,Linux内存管理有一些机制可以有效、可靠地管理内存。分页用于管理内存系统。
$ sar -b 1 3

将Sar数据写入文件
到目前为止,我们已经将收集到的统计数据打印到终端上。但在某些情况下,我们可能需要保存数据并以更闪亮的方式拍摄,或者存储历史数据以供检查。 -o
带有文件名的选项可用于将收集的信息保存到文件中。
$ sar -o sar-data -u 1 3

显示文件中的历史Sar统计信息
在前面的示例中,我们必须将sar数据保存到一个文件中。sar使用场景之一是保存这些数据并根据这些数据播放图形。Sar还可以读取所有已保存的数据并相应地显示。 -f
具有数据文件名的可用于此目的。
$ sar -f sar-data
