Linux sar 命令介绍
sar(System Activity Reporter)是 sysstat 包的一部分,用于收集、报告或保存系统活动信息,如 CPU 利用率、内存使用情况、I/O 设备使用情况等。sar 命令显示的是系统启动以来的平均统计数据。它可以将数据输出到标准输出,也可以保存到文件中。它还可以显示特定时间段的历史数据,方便您分析过去的性能问题。
Linux sar 命令适用的 Linux 版本
sar 命令在大多数 Linux 发行版中都可以使用,但需要先安装 sysstat 包。不同的发行版可能有不同的安装命令,您可以参考下面的示例:
# 基于 apt 的发行版(如 Debian、Ubuntu、Raspbian、Kali Linux 等):
[linux@bashcommandnotfound.cn ~]$ sudo apt install sysstat
# 基于 yum 的发行版(如 RedHat,CentOS 7 等):
[linux@bashcommandnotfound.cn ~]$ sudo yum install sysstat
# 基于 dnf 的发行版(如 Fedora,CentOS 8 等):
[linux@bashcommandnotfound.cn ~]$ sudo dnf install sysstat
# 基于 apk 的发行版(如 Alpine Linux):
[linux@bashcommandnotfound.cn ~]$ sudo apk add --update sysstat
# 基于 pacman 的发行版(如 Arch Linux):
[linux@bashcommandnotfound.cn ~]$ sudo pacman -S sysstat
# 基于 zypper 的发行版(如 openSUSE):
[linux@bashcommandnotfound.cn ~]$ sudo zypper in sysstat
# 基于 pkg 的 FreeBSD 发行版
[linux@bashcommandnotfound.cn ~]$ sudo pkg install sysstat
# 基于 pkg 的 OS X/macOS 发行版:
[linux@bashcommandnotfound.cn ~]$ brew install sysstat
Linux sar 命令的基本语法
sar 命令的基本语法格式如下:
sar [options] [interval] [count]
其中,options 是指定要显示的统计数据的选项,interval 是指定每隔多少秒显示一次的时间间隔,count 是指定要显示多少次的次数。如果省略 interval 和 count,sar 会显示系统启动以来的平均统计数据。如果只省略 count,sar 会无限次地显示统计数据,直到按 Ctrl+C 中断。
Linux sar 命令的常用选项或参数说明
sar 命令有很多选项或参数,可以显示不同的系统活动信息。下表列出了一些常用的选项或参数,按照字母顺序排序。如果想查看完整的选项或参数列表,可以使用 sar -h 命令或查看 sar 的手册页。
选项或参数 | 说明 |
---|---|
-A | 显示所有的统计数据,相当于 -bBdFHIiqrRSuvwWy -h -n ALL |
-b | 显示 I/O 和传输速率的统计数据 |
-B | 显示内存分页的统计数据 |
-d | 显示块设备的统计数据 |
-f | 从指定的文件中提取统计数据,而不是从默认的系统活动日志文件中 |
-h | 显示帮助信息 |
-i | 显示中断的统计数据 |
-n | 显示网络的统计数据,可以指定要显示的网络接口或项目,如 DEV, EDEV, NFS, NFSD, SOCK, IP, EIP, ICMP, EICMP, TCP, ETCP, UDP, SOCK6, IP6, EIP6, ICMP6, EICMP6, UDP6, TCP6, ETCP6 |
-p | 显示指定的 PID 或进程名的统计数据 |
-q | 显示队列长度和负载平均值的统计数据 |
-r | 显示内存利用率的统计数据 |
-S | 显示交换空间的统计数据 |
-u | 显示 CPU 利用率的统计数据,可以指定要显示的 CPU 或项目,如 ALL, XALL, CPU |
-v | 显示内核表的统计数据 |
-V | 显示 sar 的版本信息 |
-w | 显示任务创建和系统切换的统计数据 |
-y | 显示电源管理的统计数据 |
Linux sar 命令实例详解
下面是一些使用 sar 命令的实例,结合了一些最常搜索的关键词,如 CPU, memory, disk, network 等。每个实例都给出了相关的解释和输出示例。
实例1:显示 CPU 利用率的统计数据
如果想查看 CPU 的利用率,可以使用 sar -u 命令,它会显示每个 CPU 的用户态、系统态、空闲态和等待 I/O 的百分比。如果不指定 interval 和 count,sar 会显示系统启动以来的平均 CPU 利用率。例如:
[linux@bashcommandnotfound.cn ~]$ sar -u
Linux 5.10.15-1-MANJARO (linux) 2024-01-26 _x86_64_ (4 CPU)
11:52:13 CPU %user %nice %system %iowait %steal %idle
11:52:13 all 3.02 0.00 1.08 0.09 0.00 95.81
Average: all 3.02 0.00 1.08 0.09 0.00 95.81
如果指定 interval 和 count,sar 会显示每隔 interval 秒的 CPU 利用率,共显示 count 次。例如,sar -u 5 3 会显示每隔 5 秒的 CPU 利用率,共显示 3 次。例如:
[linux@bashcommandnotfound.cn ~]$ sar -u 5 3
Linux 5.10.15-1-MANJARO (linux) 2024-01-26 _x86_64_ (4 CPU)
11:52:13 CPU %user %nice %system %iowait %steal %idle
11:52:18 all 2.90 0.00 1.10 0.10 0.00 95.90
11:52:23 all 3.10 0.00 1.05 0.08 0.00 95.77
Average: all 3.04 0.00 1.07 0.09 0.00 95.79
如果想查看每个 CPU 的利用率,可以使用 sar -u -P ALL 命令,它会显示每个 CPU 的用户态、系统态、空闲态和等待 I/O 的百分比,以及所有 CPU 的平均值。例如:
[linux@bashcommandnotfound.cn ~]$ sar -u -P ALL
Linux 5.10.15-1-MANJARO (linux) 2024-01-26 _x86_64_ (4 CPU)
11:52:13 CPU %user %nice %system %iowait %steal %idle
11:52:13 0 3.03 0.00 1.09 0.09 0.00 95.79
实例2:显示内存利用率的统计数据
如果想要查看内存的利用率,可以使用 "sar -r" 命令,它会显示内存使用率和空闲内存量。例如:
$ sar -r
实例3:显示磁盘I/O的统计数据
如果你想要查看磁盘I/O的使用情况,可以使用 "sar -d" 命令,它会显示设备的活动状况。例如:
$ sar -d
实例4:显示网络统计数据
如果你想查看网络使用情况,可以使用 "sar -n DEV" 命令,其中 'DEV' 指的是设备名,它会显示接收和发送的字节数。例如:
$ sar -n DEV
实例5:显示所有CPU的负载平均值
案例中将显示所有 CPU 的负载平均值,此操作可通过 "sar -q" 实现。例如:
$ sar -q
实例6:查看可用交换空间大小
通过 "sar -S" 命令,您可以查看系统可用的交换空间大小。例如:
$ sar -S
实例7:查看运行队列和加载平均值
通过 "sar -q" 命令,您可以查看系统的运行队列和加载平均值。例如:
$ sar -q
实例8:查看设备的数据传输速率
通过 "sar -b" 命令,您可以查看设备的数据传输速率。例如:
$ sar -b
实例9:显示特定时间段的CPU利用率
通过指定开始时间和结束时间,可以查看特定时间段的 CPU 利用率,如8:00至12:00。前十一点四十五开始,到十二点结束的数据,可以使用 "sar -u -s 11:45:00 -e 12:00:00"。例如:
$ sar -u -s 08:00:00 -e 12:00:00
实例10:每10分钟收集一次系统数据
可以设置 sar 命令每10分钟收集一次系统数据,持续2个小时,可以使用 "sar -o output.file 600 12"。例如:
$ sar -o output.file 600 12
实例11:从已保存的 sar 文件中获取信息
将由 "sar -o output.file 600 12" 产生的数据读取出来,可以使用 "sar -f output.file":
$ sar -f output.file
实例12:查看所有网络设备的统计数据
查看所有网络适配器的统计数据,包括所接收和发送的数据包数量,可以使用 "sar -n DEV"。例如:
$ sar -n DEV
Linux sar 命令的注意事项:
-
在使用 sar 命令前,请确保已经正确安装了 sysstat 包,否则可能会出现 "bash: sar: command not found" 的错误提示。如果遇到这种情况,请按照步骤安装 sysstat。
-
记住,在运行带有参数的 sar 命令时,参数的顺序是很重要的,弄错了可能会导致命令无法正确执行。
-
sar 命令提供的信息可能会根据你的系统类型和配置有所不同,不是所有的选项都适用于每一种系统。
-
sar 命令是一个占用资源较小的命令,可以在生产环境中放心使用。但是,当你需要进行频繁或密集的系统性能监控时,应注意系统资源的使用情况。
评论区