实战

安装 + 启用

sudo apt-get install sysstat
sudo service sysstat start

sar

这里是 windows 的 linux 发行版本。

$ 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是 二进制方式安装。两种方式均可。

发行版安装

yum install -y sysstat
# (or)
sudo apt-get install sysstat
# (or)
rpm -ivh rpm -ivh sysstat-10.0.0-1.i586.rpm

二进制方式安装

# 获取包并解压搜
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 

使用

查看版本

$ sar -V
sysstat version 10.1.5
(C) Sebastien Godard (sysstat <at> orange.fr)

统计

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

$   sar 1 3

结果如下:

$ 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

参数

$   sar --help

常见的参数说明:

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才能使用。

命令格式:

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

常用选项:

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

示例:

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

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

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

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

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

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

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

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

输出解释:

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

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

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

Q2-sar 无法使用

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 服务已安装并启动

     sudo apt-get install sysstat
     sudo service sysstat start
    

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

  2. 手动运行 sysstat 收集数据

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

     sudo sar
    

    或者手动运行 sadc 命令:

     sudo sadc -d
    

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

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

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

     sudo mkdir -p /var/log/sysstat
    

    然后重新运行 sarsadc 命令。

  4. 检查 sysstat 配置文件

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

     sudo nano /etc/default/sysstat
    

    确保 ENABLED 行类似于:

     ENABLED="true"
    

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

     sudo service sysstat restart
    
  5. 查看 sysstat 日志文件

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

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

参考资料

Linux df命令