实战

安装 + 启用

  [plaintext]
1
2
sudo apt-get install sysstat sudo service sysstat start

sar

这里是 windows 的 linux 发行版本。

  [plaintext]
1
2
3
4
$ sar Linux 5.15.90.1-microsoft-standard-WSL2 (d) 11/14/23 _x86_64_ (16 CPU) 09:42:01 LINUX RESTART (16 CPU)

sar 安装

有两种方式:

第1是 使用安装包管理器,如yum,apt,rpm等。

第2是 二进制方式安装。两种方式均可。

发行版安装

  [sh]
1
2
3
4
5
yum install -y sysstat # (or) sudo apt-get install sysstat # (or) rpm -ivh rpm -ivh sysstat-10.0.0-1.i586.rpm

二进制方式安装

  [sh]
1
2
3
4
5
6
7
8
9
10
# 获取包并解压搜 wget http://pagesperso-orange.fr/sebastien.godard/sysstat-10.0.0.tar.bz2 bunzip2 sysstat-10.0.0.tar.gz tar xvf sysstat-10.0.0.tar # 制作makefile,编译,安装。 cd /sysstat-10.0.0.tar ./configure --enable-install-cron make make install

使用

查看版本

  [sh]
1
2
3
$ sar -V sysstat version 10.1.5 (C) Sebastien Godard (sysstat <at> orange.fr)

统计

查看CPU统计信息 3次,每次间隔1s。

  [sh]
1
$ sar 1 3

结果如下:

  [sh]
1
2
3
4
5
6
7
8
$ sar 1 3 Linux 3.10.0-1160.45.1.el7.x86_64 (VM-12-8-centos) 04/06/2023 _x86_64_ (2 CPU) 04:34:32 PM CPU %user %nice %system %iowait %steal %idle 04:34:33 PM all 1.01 0.00 0.50 0.00 0.00 98.49 04:34:34 PM all 0.51 0.00 0.51 0.00 0.00 98.99 04:34:35 PM all 2.01 0.00 2.51 1.01 0.00 94.47 Average: all 1.17 0.00 1.17 0.34 0.00 97.32

参数

  [plaintext]
1
$ sar --help

常见的参数说明:

  [plaintext]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
sar选项: -b —> I/O传输速率信息状态 -B —> 分布状况 -c —> 进程创建活动 -d —> 块设备状况 -e —> 设置显示报告的结果时间 -m —> 电源管理信息状况 -f —> 从指定文件提取报告 -I {<中断> | SUM | ALL | XALL —>} 中断信息状况 -m —> 电源管理信息状况 -n { <关键词> [,…] | ALL } —> 网络统计信息,关键词可以是: -P —> 报告每个CPU的状态 -q —> 队列长度和平均负载 -r —> 内存利用率 -R —> 内存状态 -S —> 交换空间利用率 -u [ ALL ] —> CPU利用率 -v —> Kernel table状况 -w —> 任务创建与系统转换统计信息 -W —> 交换信息 -y —> TTY设备状态 -x —> 显示给定进程的状态

chat

Q1-详细介绍一下 linux sar 命令

sar(System Activity Reporter)是一个用于报告系统性能活动的命令。

它可以收集、报告以及保存系统的活动数据,包括CPU使用率、内存使用率、磁盘I/O、网络活动等。

sarsysstat软件包的一部分,通常需要先安装sysstat才能使用。

命令格式:

  [bash]
1
sar [选项] [时间间隔] [次数]
  • 选项-u(CPU使用情况)、-r(内存使用情况)、-b(磁盘I/O情况)、-n(网络统计)等。
  • 时间间隔:采样时间间隔,单位为秒。
  • 次数:采样次数。

常用选项:

  1. -u:报告CPU使用情况。
      [bash]
    1
    sar -u
  2. -r:报告内存使用情况。
      [bash]
    1
    sar -r
  3. -b:报告磁盘I/O情况。
      [bash]
    1
    sar -b
  4. -n:报告网络统计。
      [bash]
    1
    sar -n DEV

示例:

  1. 查看CPU使用情况
      [bash]
    1
    sar -u 1 5

    上述命令每隔1秒采样一次,共采样5次CPU使用情况。

  2. 查看内存使用情况
      [bash]
    1
    sar -r 1 5

    上述命令每隔1秒采样一次,共采样5次内存使用情况。

  3. 查看磁盘I/O情况
      [bash]
    1
    sar -b 1 5

    上述命令每隔1秒采样一次,共采样5次磁盘I/O情况。

  4. 查看网络统计
      [bash]
    1
    sar -n DEV 1 5

    上述命令每隔1秒采样一次,共采样5次网络统计。

输出解释:

sar命令的输出提供了系统性能活动的详细数据,包括CPU利用率、内存使用、磁盘I/O、网络统计等。

输出的字段可能有所不同,具体取决于选择的选项和正在运行的系统。

通常,输出的解释会包含在sysstat软件包的文档中,你可以查阅相关文档以更深入地理解输出。

Q2-sar 无法使用

  [plaintext]
1
2
Cannot open /var/log/sysstat/sa14: No such file or directory Please check if data collecting is enabled

怎么解决?

这种错误通常表明 sar 命令无法找到指定的数据文件 /var/log/sysstat/sa14,这可能是由于 sysstat 数据收集服务没有启动,或者在系统上尚未生成该文件。

以下是一些建议的解决方法:

  1. 确保 sysstat 服务已安装并启动

      [bash]
    1
    2
    sudo apt-get install sysstat sudo service sysstat start

    确保 sysstat 服务已经安装并正在运行。服务启动后,它将定期收集系统性能数据并将其写入 /var/log/sysstat/ 目录下的文件中。

  2. 手动运行 sysstat 收集数据

    如果服务已启动但问题仍然存在,可以尝试手动运行 sar 以强制进行数据收集:

      [bash]
    1
    sudo sar

    或者手动运行 sadc 命令:

      [bash]
    1
    sudo sadc -d

    这将收集当前系统的数据并写入 /var/log/sysstat/ 目录下的文件中。

  3. 检查 /var/log/sysstat 目录是否存在

    确保 /var/log/sysstat/ 目录存在。如果不存在,创建它:

      [bash]
    1
    sudo mkdir -p /var/log/sysstat

    然后重新运行 sarsadc 命令。

  4. 检查 sysstat 配置文件

    确保 /etc/default/sysstat 配置文件中的 ENABLED 选项设置为 true

      [bash]
    1
    sudo nano /etc/default/sysstat

    确保 ENABLED 行类似于:

      [plaintext]
    1
    ENABLED="true"

    如果进行了更改,请重新启动 sysstat 服务:

      [bash]
    1
    sudo service sysstat restart
  5. 查看 sysstat 日志文件

    查看 /var/log/sysstat/saXX 文件中是否有数据,其中 XX 是当天的日期。如果文件存在,可能是由于权限问题导致 sar 命令无法读取。

通过检查以上步骤,你应该能够解决问题。如果问题仍然存在,你可能需要查看系统日志或 sysstat 相关的错误信息,以获取更多详细信息。

参考资料

Linux df命令