系统管理指南:高级管理

自动收集系统活动数据 (sar)

自动收集系统活动数据时需要使用三个命令:sadcsa1sa2

sadc 数据收集实用程序定期收集系统数据,并以二进制格式的文件保存数据,每 24 小时保存一个文件。可以将 sadc 命令设置为定期运行(通常每小时一次),并在系统引导到多用户模式时运行。数据文件放置在 /var/adm/sa 目录中。每个文件都命名为 sadd,其中 dd 是当前日期。命令的格式如下:


/usr/lib/sa/sadc [t n] [ofile]

该命令以 t 秒为间隔采样 n 次,两次采样之间的间隔应大于 5 秒。然后,此命令将向二进制 ofile 文件或标准输出中写入数据。

引导时运行 sadc 命令

sadc 命令应在系统引导时运行,以记录自计数器重置为零以来的统计信息。为确保在引导时运行 sadc 命令,svcadm enable system/sar:default 命令会向每日数据文件中写入一条记录。

该命令项格式如下:


/usr/bin/su sys -c "/usr/lib/sa/sadc /var/adm/sa/sa`date +%d`"

使用 sa1 脚本定期运行 sadc 命令

为了生成定期记录,您需要定期运行 sadc 命令。最简单的方法是在 /var/spool/cron/crontabs/sys 文件中取消对下列行的注释:


# 0 * * * 0-6 /usr/lib/sa/sa1
# 20,40 8-17 * * 1-5 /usr/lib/sa/sa1
# 5 18 * * 1-5 /usr/lib/sa/sa2 -s 8:00 -e 18:01 -i 1200 -A

sys crontab 项执行以下操作:

可以更改这些缺省设置,以满足您的需要。

使用 sa2 Shell 脚本生成报告

另一个 shell 脚本 sa2 可生成报告,而不是二进制数据文件。sa2 命令调用 sar 命令,并将 ASCII 输出写入报告文件。

设置自动数据收集 (sar)

sar 命令可用于自行收集系统活动数据,或报告 sadc 命令所创建的每日活动文件中收集的内容。

sar 命令格式如下:


sar [-aAbcdgkmpqruvwy] [-o file] t [n] 

sar [-aAbcdgkmpqruvwy] [-s time] [-e time] [-i sec] [-f file]

以下 sar 命令每隔 t 秒对操作系统中的累积活动计数器进行采样,共进行 n 次。t 应大于或等于 5 秒。否则,命令本身会对样本产生影响。必须指定采样的时间间隔。否则,命令将根据第二种格式运行。n 的缺省值为 1。以下示例以 10 秒为间隔抽取两个样本。如果指定 -o 选项,则以二进制格式保存样本。


$ sar -u 10 2

有关 sar 命令的其他重要信息包括:

下表列出了 sar 选项及其操作。

表 13–2 sar 命令的选项

选项 

操作 

-a

检查文件访问操作 

-b

检查缓冲区活动  

-c

检查系统调用  

-d

检查每个块设备的活动 

-g

检查页出和内存释放  

-k

检查内核内存分配  

-m

检查进程间通信  

-nv

检查系统表状态  

-p

检查交换和分发活动  

-q

检查队列活动  

-r

检查未使用的内存  

-u

检查 CPU 使用率 

-w

检查交换和切换卷  

-y

检查终端活动  

-A

报告总体系统性能,这与输入所有选项等效。 

不使用任何选项等效于调用带 -u 选项的 sar 命令。

Procedure如何设置自动数据收集

  1. 成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 运行 svcadm enable system/sar:default 命令。

    此版本的 sadc 命令会写入一条特殊记录,其中标记了将计数器重置为零的时间(引导时间)。

  3. 编辑 /var/spool/cron/crontabs/sys crontab 文件。


    注 –

    不要直接编辑 crontab 文件。而要改用 crontab -e 命令对现有 crontab 文件进行更改。



    # crontab -e sys
    
  4. 取消对以下行的注释:


    0 * * * 0-6 /usr/lib/sa/sa1
    20,40 8-17 * * 1-5 /usr/lib/sa/sa1
    5 18 * * 1-5 /usr/lib/sa/sa2 -s 8:00 -e 18:01 -i 1200 -A

    有关更多信息,请参见 crontab(1) 手册页。