侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux sar命令深度教程:系统性能分析利器(附实例详解和注意事项)

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 命令的注意事项:

  1. 在使用 sar 命令前,请确保已经正确安装了 sysstat 包,否则可能会出现 "bash: sar: command not found" 的错误提示。如果遇到这种情况,请按照步骤安装 sysstat。

  2. 记住,在运行带有参数的 sar 命令时,参数的顺序是很重要的,弄错了可能会导致命令无法正确执行。

  3. sar 命令提供的信息可能会根据你的系统类型和配置有所不同,不是所有的选项都适用于每一种系统。

  4. sar 命令是一个占用资源较小的命令,可以在生产环境中放心使用。但是,当你需要进行频繁或密集的系统性能监控时,应注意系统资源的使用情况。

0

评论区