在 Oracle® Solaris 11.2 中管理系统信息、进程和性能

退出打印视图

更新时间: 2014 年 9 月
 
 

自动收集系统活动数据 (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 项执行以下操作:

  • 前两个 crontab 项可在星期一到星期五从上午 8 点到下午 5 点,每 20 分钟或每小时向 /var/adm/sa/sadd 文件写入一条记录。

  • 第三项可从星期一到星期五每小时向 /var/adm/sa/sardd 文件写入一条记录,并且可以包括所有 sar 选项。

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

使用 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]

第一种格式每隔 t 秒对操作系统中的累积活动计数器进行采样,共进行 n 次。t 应大于或等于 5 秒。否则,命令本身会对样本产生影响。必须指定采样的时间间隔。否则,命令将根据第二种格式运行。n 的缺省值为 1。

以下示例使用第二种格式,以 10 秒为间隔抽取两个样本。如果指定 –o 选项,则以二进制格式保存样本。

$ sar -u 10 2

使用第二种格式的 sar 命令未指定采样间隔或采样次数,从以前记录的文件中提取数据。该文件是由 –f 选项为最近一天指定的文件,或对应于最近一天的标准每日活动文件 /var/adm/sa/sadd(缺省设置)。

–s–e 选项定义报告的开始时间和结束时间。开始时间和结束时间的格式为 hh[:mm[:ss]],其中 hhmmss 表示小时、分钟和秒。

–i 选项指定记录选择之间的时间间隔(秒)。如果不包括 –i 选项,则报告在每日活动文件中找到的所有间隔。

sar 选项及其操作如下所示:


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

检查文件访问操作

–b

检查缓冲区活动

–c

检查系统调用

–d

检查每个块设备的活动

–g

检查页出和内存释放

–k

检查内核内存分配

–m

检查进程间通信

–nv

检查系统表状态

–p

检查交换和分发活动

–q

检查队列活动

–r

检查未使用的内存

–u

检查 CPU 使用率

–w

检查交换和切换卷

–y

检查终端活动

–A

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

如何设置自动数据收集

  1. 承担 root 角色。

    请参见在 Oracle Solaris 11.2 中确保用户和进程的安全 中的使用所指定的管理权限

  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) 手册页。