Linux System Activity Reporter(SAR)命令教程及示例

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

安装

Sar由提供 sysstat 工具,可以从官方存储库和各种发行版安装。

$ sudo apt install sysstat
Install Sar
安装Sar

语法

我们将使用以下语法 sar 命令。

sar [options] [interval] [count]
Syntax
语法

救命

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

$ sar -h
Help
救命

显示CPU状态

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

$ sar -u 1 3
Show CPU Stats
显示CPU状态

在本例中,CPU列提供了所有CPU的度量都已提供的信息。还有用于性能度量的时间信息。

  • %user 列用于显示用户端负载
  • %system 列用于显示与系统相关的负载
  • %idle 列显示未使用的CPU资源数量。在这种情况下,负载非常低,空闲值的范围是%%97

显示特定的所有CPU统计信息

在上一个示例中,我们已经查看了一些流行且最有用的CPU统计数据。但在某些情况下,这是不够的,我们可能需要更多关于CPU的数据 iowait . 这些数据可以用 ALL 后选项 -u 就像下面一样。

$ sar -u ALL 1 3
Show Specific All CPU Stats
显示特定的所有CPU统计信息

在这个例子中,我们可以看到额外的列,如 %iowaint %irq , %gnice .

显示特定的CPU统计信息

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

$ sar -P 1 1 3
Show Specific CPU Stats
显示特定的CPU统计信息

我们可以从截图中看到,第一个核心是用 -P 1 同时还提供了间隔、计数等参数。如果我们 看看CPU列,我们可以看到核心索引1是按我们的预期打印的。

相关文章: 如何检查和监控电脑/个人电脑的温度?

显示内存统计信息

Linux服务器的另一个重要性能指标是内存。内存性能可以通过 -r 参数。

$ sar -r 1 3
Show Memory Stats
显示内存统计信息

我们可以看到很多关于内存的信息。

  • kbmemfree 列将可用内存显示为KB
  • kbmemused 列以千字节的形式显示已用内存
  • %memused 列显示已用内存的百分比

显示交换统计信息

交换是多年前使用的一种内存增量机制。目前,系统管理员不喜欢这种方法,因为内存价格低,交换性能不好。交换数据可以通过 -S 选项。

$ sar -S 1 3
Show Swap Stats
显示交换统计信息

正如我们从输出中看到的,在这个Linux服务器中没有交换使用。

  • kbswpfree 列以KB为单位显示可用交换大小
  • kbswpused 列以千字节为单位显示已使用的交换大小
  • %swpused 列以百分比形式显示已使用的交换大小

显示I/O统计信息

木卫一 是Linux系统的另一个监视指标。 IO参数 -b 提供有关每秒事务、读写事务等的信息。

$ sar -b 1 3
Show I/O Stats
显示I/O统计信息
  • tps 列显示每秒的事务数
  • rtpd 列显示每秒读取事务数
  • wtps 列显示每秒写入事务数
  • bread/s 列显示读取第二个计数的字节
  • wread/s 列显示字节写入第二个计数

显示特定磁盘I/O统计信息

也可以使用sar命令收集块设备或磁盘IO统计信息。要获取此信息,必须选择 -d .

$ sar -d 1 3
Show Specific Disk I/O Stats
显示特定磁盘I/O统计信息
  • DEV 列显示设备的次要和主要编号,如dev252-0
  • tps 列显示每秒的事务数
  • rd_sec/s 柱 显示 读取操作在一秒钟内完成
  • we_sec/s 柱 显示 写入操作在一秒钟内完成
  • %util 列显示总利用率百分比

相关文章: 如何使用Linux dmesg命令打印系统日志?

显示磁盘名称

在前面的示例中,我们列出了默认情况下具有相关磁盘设备主要和次要编号的统计信息。如果我们在Linux系统上有很多磁盘,从人的角度来看这是不可读的。 -p 选项可用于列出具有本机名称的磁盘设备,如 sda , vda 等。

$ sar -p -d 1 3
Show Disk Names
显示磁盘名称

显示上下文开关状态

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

$ sar -w 1 3
Show Context Switch Stats
显示上下文开关状态

显示网络统计信息

可以使用选项打印网络统计信息 -n . 在选项之后,还必须提供关键字。在本例中,我们将打印与设备相关的度量。

$ sudo sar -n DEV 1 3

图片[13]-Linux System Activity Reporter(SAR)命令教程及示例-cppku-C++库

  • 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

图片[14]-Linux System Activity Reporter(SAR)命令教程及示例-cppku-C++库

显示分页状态

众所周知,Linux内存管理有一些机制可以有效、可靠地管理内存。分页用于管理内存系统。

$ sar -b 1 3
Show Paging Stats
显示分页状态

将Sar数据写入文件

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

$ sar -o sar-data -u 1 3
Write Sar Stats To A File
将Sar数据写入文件

显示文件中的历史Sar统计信息

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

$ sar -f sar-data
Show Historic Sar Stats
显示历史Sar统计数据
© 版权声明
THE END
喜欢就支持一下吧,技术咨询可以联系QQ407933975
点赞0
分享