自动收集系统活动数据时需要使用三个命令:sadc、sa1 和 sa2。
sadc 数据收集实用程序定期收集系统数据,并以二进制格式的文件保存数据,每 24 小时保存一个文件。可以将 sadc 命令设置为定期运行(通常每小时一次),并在系统引导到多用户模式时运行。数据文件放置在 /var/adm/sa 目录中。每个文件都命名为 sadd,其中 dd 是当前日期。命令的格式如下:
/usr/lib/sa/sadc [t n] [ofile]
该命令以 t 秒为间隔采样 n 次,两次采样之间的间隔应大于 5 秒。然后,此命令将向二进制 ofile 文件或标准输出中写入数据。
sadc 命令应在系统引导时运行,以记录自计数器重置为零以来的统计信息。为确保在引导时运行 sadc 命令,svcadm enable system/sar:default 命令会向每日数据文件中写入一条记录。
/usr/bin/su sys -c "/usr/lib/sa/sadc /var/adm/sa/sa`date +%d`"
为了生成定期记录,您需要定期运行 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 项执行以下操作:
前两个 crontab 项可在星期一到星期五从上午 8 点到下午 5 点,每 20 分钟或每小时向 /var/adm/sa/sadd 文件写入一条记录。
第三项可从星期一到星期五每小时向 /var/adm/sa/sardd 文件写入一条记录,并且可以包括所有 sar 选项。
可以更改这些缺省设置,以满足您的需要。
另一个 shell 脚本 sa2 可生成报告,而不是二进制数据文件。sa2 命令调用 sar 命令,并将 ASCII 输出写入报告文件。
sar 命令可用于自行收集系统活动数据,或报告 sadc 命令所创建的每日活动文件中收集的内容。
sar 命令格式如下:
sar [-aAbcdgkmpqruvwy] [-o file] t [n]
sar [-aAbcdgkmpqruvwy] [-s time] [-e time] [-i sec] [-f file]
第一种格式每隔 t 秒对操作系统中的累积活动计数器进行采样,共进行 n 次。t 应大于或等于 5 秒。否则,命令本身会对样本产生影响。必须指定采样的时间间隔。否则,命令将根据第二种格式运行。n 的缺省值为 1。
以下示例使用第二种格式,以 10 秒为间隔抽取两个样本。如果指定 –o 选项,则以二进制格式保存样本。
$ sar -u 10 2
使用第二种格式的 sar 命令未指定采样间隔或采样次数,从以前记录的文件中提取数据。该文件是由 –f 选项为最近一天指定的文件,或对应于最近一天的标准每日活动文件 /var/adm/sa/sadd(缺省设置)。
–s 和 –e 选项定义报告的开始时间和结束时间。开始时间和结束时间的格式为 hh[:mm[:ss]],其中 hh、mm 和 ss 表示小时、分钟和秒。
–i 选项指定记录选择之间的时间间隔(秒)。如果不包括 –i 选项,则报告在每日活动文件中找到的所有间隔。
检查文件访问操作
检查缓冲区活动
检查系统调用
检查每个块设备的活动
检查页出和内存释放
检查内核内存分配
检查进程间通信
检查系统表状态
检查交换和分发活动
检查队列活动
检查未使用的内存
检查 CPU 使用率
检查交换和切换卷
检查终端活动
报告总体系统性能,这与输入所有选项等效
此版本的 sadc 命令会写入一条特殊记录,其中标记了将计数器重置为零的时间(引导时间)。
# crontab -e 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
有关更多信息,请参见 crontab(1) 手册页。