JavaScript is required to for searching.
跳过导航链接
退出打印视图
系统管理指南:高级管理     Oracle Solaris 10 8/11 Information Library (简体中文)
search filter icon
search icon

文档信息

关于本书

1.  管理终端和调制解调器(概述)

2.  设置终端和调制解调器(任务)

3.  使用服务访问工具管理串行端口(任务)

4.  管理系统资源(概述)

5.  显示和更改系统信息(任务)

6.  管理磁盘使用(任务)

7.  管理 UFS 配额(任务)

8.  调度系统任务(任务)

9.  管理系统记帐(任务)

10.  系统记帐(参考)

runacct 脚本

每日记帐报告

每日报告

每日使用情况报告

每日命令摘要

每月命令摘要

上次登录报告

使用 acctcom 检查 pacct 文件

系统记帐文件

runacct 脚本生成的文件

11.  管理系统性能(概述)

12.  管理系统进程(任务)

13.  监视系统性能(任务)

14.  软件问题故障排除(概述)

15.  管理系统消息

16.  管理核心转储文件(任务)

17.  管理系统故障转储信息(任务)

18.  各种软件问题的故障排除(任务)

19.  文件访问问题故障排除(任务)

20.  解决 UFS 文件系统不一致问题(任务)

21.  软件包问题故障排除(任务)

索引

每日记帐报告

runacct shell 脚本可在每次调用时生成五个基本报告。下表对这些报告进行了描述。

表 10-2 每日记帐报告

报告类型
说明
tty 数显示终端线使用率。
按用户指明系统资源的使用情况(按用户 ID 的顺序列出)。
按命令指明系统资源的使用率,按内存使用的降序列出。换言之,使用内存最多的命令列在最前面。在每月命令摘要中会为当月报告此信息。
反映自上次调用 monacct 程序以来所累积数据的累计摘要。
显示每位用户上次登录的时间(按年代顺序列出)。

每日报告

此报告提供了所使用的每个终端线的信息。下面是一个每日报告样例:

Jan 16 02:30 2004  DAILY REPORT FOR venus Page 1


from Mon Jan 15 02:30:02 2004
to   Tue Oan 16 02:30:01 2004
1       runacct
1       acctcon

TOTAL DURATION IS 1440 MINUTES
LINE         MINUTES  PERCENT  # SESS  # ON  # OFF
console      868      60       1       1     2
TOTALS       868      --       1       1     2

fromto 行指定报告中反映的时间段。此时间段包含自上次生成每日报告到生成当前每日报告之间的时间。然后,报告将显示有关系统重新引导、关机、电源断电恢复的日志以及由 acctwtmp 程序写入 /var/adm/wtmpx 文件的其他任何记录。有关更多信息,请参见 acct(1M) 手册页。

报告的第二部分是对终端线使用情况的细分。TOTAL DURATION 指出系统处于多用户模式(可通过终端线访问)的时间。下表介绍了每日报告所提供的数据。

LINE

终端线或访问端口。

MINUTES

在记帐期间使用该线的分钟数。

PERCENT

MINUTES 数划分的 TOTAL DURATION

# SESS

登录会话访问此线或端口的次数。

# ON

SESS 相同。(此列不再有意义。以前,此列可列出用户使用某线或端口登录的次数。)

# OFF

用户注销的次数以及该线中出现的任何中断。通常,在系统进入多用户模式后初次调用 ttymon 时,端口中会发生中断。如果 # OFF 超出 # SESS 很多,则多路复用器、调制解调器或电缆可能存在问题。或者,某处存在连接问题。最常见的原因是电缆与多路复用器的连接不牢固。

在实际使用中,应监视 /var/adm/wtmpx 文件,因为连接记帐源自该文件。如果 wtmpx 文件快速增大,请执行以下命令确定哪条 tty 线噪音最大。

# /usr/lib/acct/acctcon -l file < /var/adm/wtmpx

如果不断发生中断,则总体系统性能将受到影响。此外,还可能损坏 wtmp 文件。要更正此问题,请参见如何修复损坏的 wtmpx 文件

每日使用情况报告

每日使用情况报告按用户细分系统资源使用情况。下面是此报告的一个样例:

Jan 16 02:30 2004  DAILY USAGE REPORT FOR skisun Page 1


     LOGIN  CPU  (MINS)  KCORE-   MINS    CONNECT  (MINS) DISK   # OF   # OF  # DISK  FEE
UID  NAME   PRIME NPRIME PRIME    NPRIME  PRIME    NPRIME BLOCKS PROCS  SESS  SAMPLES
0    TOTAL  72    148    11006173 51168   26230634 57792  539    330    0     2150    1
0    root   32    76     11006164 33664   26230616 22784  0      0      0     127     0
4    adm    0     0      22       51      0        0      0      420    0     0       0
101  rimmer 39    72     894385   1766020 539      330    0      1603   1     0       0

下表描述每日使用情况报告所提供的数据。

表 10-3 每日使用情况报告数据

说明
UID
用户 ID 号。
LOGIN NAME
用户的登录(或用户)名。标识有多个登录名的用户。
CPU (MINS)
用户的进程使用中央处理器的时间长度(分钟)。使用情况分为 PRIMENPRIME(非主要)。此数据的记帐系统版本位于 /etc/acct/holidays 文件中。
KCORE-MINS
进程运行时每分钟所使用内存量(千字节)的累计度量。使用情况分为 PRIMENPRIME
CONNECT (MINS)
用户登录到系统的时间长度(分钟),或“实际时间”。使用情况分为 PRIMENPRIME。如果这些数字很大而 # OF PROCS 很小,则可推断出,用户早晨先登录,然后在一天的其余时间内几乎未连接终端。
DISK BLOCKS
acctdusg 程序的输出,该程序运行磁盘记帐程序并合并记帐记录 (daytacct)。用于记帐的块的大小为 512 字节。
# OF PROCS
用户调用的进程数。如果出现的数字很大,则表明用户可能有一个 shell 过程在运行时无法受到控制。
# OF SESS
用户登录系统的次数。
# DISK SAMPLES
运行磁盘记帐以获得 DISK BLOCKS 平均数的次数。
FEE
此字段表示 chargefee 脚本对用户收取费用的总累积单位,通常不使用此字段。

每日命令摘要

每日命令摘要报告按命令显示系统资源使用情况。通过此报告,可以确定使用率最高的命令。根据这些命令使用系统资源的方式,可以准确掌握对系统进行调优的最佳方式。

这些报告按 TOTAL KCOREMIN 排序,它是任意衡量,但常用于计算系统中的垃圾箱。

下面是一个每日命令摘要样例:

                                TOTAL COMMAND SUMMARY
COMMAND   NUMBER      TOTAL   TOTAL     TOTAL   MEAN    MEAN     HOG   CHARS   BLOCKS
NAME        CMDS    KCOREMIN CPU-MIN REAL-MIN  SIZE-K  CPU-MIN  FACTOR TRNSFD  READ

TOTALS      2150  1334999.75  219.59 724258.50 6079.48   0.10   0.00   397338982 419448

netscape      43  2456898.50   92.03  54503.12 26695.51  2.14   0.00   947774912 225568
adeptedi       7    88328.22    4.03    404.12 21914.95  0.58   0.01    93155160   8774
dtmail         1    54919.17    5.33  17716.57 10308.94  5.33   0.00   213843968  40192
acroread       8    31218.02    2.67  17744.57 11682.66  0.33   0.00   331454464  11260
dtwm           1    16252.93    2.53  17716.57 6416.05   2.53   0.00   158662656  12848
dtterm         5     4762.71    1.30  76300.29 3658.93   0.26   0.00    33828352  11604
dtaction      23     1389.72    0.33      0.60 4196.43   0.01   0.55    18653184    539
dtsessio       1     1174.87    0.24  17716.57 4932.97   0.24   0.00    23535616   5421
dtcm           1      866.30    0.18  17716.57 4826.21   0.18   0.00     3012096   6490

以下列表介绍了每日命令摘要提供的数据。

COMMAND NAME

命令的名称。由于进程记帐系统只报告对象模块,因此所有 Shell 过程都集中在名称 sh 下。应对名为 a.outcore 或其他任何意外名称的程序的频率进行监视。可以使用 acctcom 程序来确定哪个用户执行了名称奇怪的命令以及是否使用了超级用户特权。

NUMBER CMDS

运行此命令的总次数。

TOTAL KCOREMIN

进程运行时每分钟所使用千字节内存段的累计度量。

TOTAL CPU-MIN

此程序累积的总处理时间。

TOTAL REAL-MIN

此程序累积的总实时(挂钟)分钟数。

MEAN SIZE-K

NUMBER CMDS 所反映的调用次数中 TOTAL KCOREMIN 的平均值(平均数)。

MEAN CPU-MIN

源自 NUMBER CMDSTOTAL CPU-MIN 的平均值(平均数)。

HOG FACTOR

CPU 总时间除以已用时间。显示系统可用性与系统使用率之比,提供进程在执行期间可用的总 CPU 时间的相对测量。

CHARS TRNSFD

由读和写系统调用传送的字符数。可能因溢出而为负值。

BLOCKS READ

一个进程执行的物理块读取和写入总数。

每月命令摘要

每日命令摘要报告的格式实际上与每月命令摘要报告的格式相同。但是,每日摘要只针对当前记帐期间进行报告,而每月摘要则针对从财务期间开始到当前日期之间的时间段进行报告。换言之,每月报告是一个累计摘要,它反映自上次调用 monacct 程序以来累积的数据。

下面是一个每月命令摘要样例。

Jan 16 02:30 2004  MONTHLY TOTAL COMMAND SUMMARY Page 1


                                     TOTAL COMMAND SUMMARY
COMMAND   NUMBER      TOTAL   TOTAL     TOTAL   MEAN     MEAN    HOG      CHARS    BLOCKS
NAME        CMDS    KCOREMIN CPU-MIN  REAL-MIN  SIZE-K   CPU-MIN FACTOR  TRNSFD    READ

TOTALS     42718  4398793.50  361.92  956039.00 12154.09 0.01    0.00  16100942848 825171

netscape     789  3110437.25  121.03   79101.12 25699.58 0.15    0.00   3930527232 302486
adeptedi      84  1214419.00   50.20    4174.65 24193.62 0.60    0.01    890216640 107237
acroread     145   165297.78    7.01   18180.74 23566.84 0.05    0.00   1900504064  26053
dtmail         2    64208.90    6.35   20557.14 10112.43 3.17    0.00    250445824  43280
dtaction     800    47602.28   11.26      15.37  4226.93 0.01    0.73    640057536   8095
soffice.      13    35506.79    0.97       9.23 36510.84 0.07    0.11    134754320   5712
dtwm           2    20350.98    3.17   20557.14  6419.87 1.59    0.00    190636032  14049

有关每月命令摘要所提供数据的描述,请参见每日命令摘要

上次登录报告

此报告给出上次进行特定登录的日期。使用此信息可以找出未使用的登录以及可以存档和删除的登录目录。下面是一个上次登录报告。

Jan 16 02:30 2004  LAST LOGIN Page 1


01-06-12  kryten         01-09-08  protoA      01-10-14  ripley
01-07-14  lister         01-09-08  protoB      01-10-15  scutter1
01-08-16  pmorph         01-10-12  rimmer      01-10-16  scutter2

使用 acctcom 检查 pacct 文件

您随时都可以使用 acctcom 程序来检查 /var/adm/pacct n 文件的内容,或含有 acct.h 格式的记录的任何文件的内容。如果运行此命令时不指定任何文件也不提供任何标准输入,acctcom 命令将读取 pacct 文件。acctcom 命令所读取的每条记录都表示有关已终止进程的信息。可通过运行 ps 命令来检查活动进程。

acctcom 命令的缺省输出提供以下信息:

# acctcom
COMMAND                           START    END          REAL     CPU    MEAN
NAME       USER     TTYNAME       TIME     TIME       (SECS)  (SECS) SIZE(K)
#accton    root      ?            02:30:01 02:30:01     0.03    0.01  304.00
turnacct   adm       ?            02:30:01 02:30:01     0.42    0.01  320.00
mv         adm       ?            02:30:01 02:30:01     0.07    0.01  504.00
utmp_upd   adm       ?            02:30:01 02:30:01     0.03    0.01  712.00
utmp_upd   adm       ?            02:30:01 02:30:01     0.01    0.01  824.00
utmp_upd   adm       ?            02:30:01 02:30:01     0.01    0.01  912.00
utmp_upd   adm       ?            02:30:01 02:30:01     0.01    0.01  920.00
utmp_upd   adm       ?            02:30:01 02:30:01     0.01    0.01 1136.00
utmp_upd   adm       ?            02:30:01 02:30:01     0.01    0.01  576.00
closewtm   adm       ?            02:30:01 02:30:01     0.10    0.01  664.00

以下列表介绍了每个字段:

COMMAND NAME

命令名称(如果以超级用户特权执行命令,则带有井号 (#))

USER

用户名

TTYNAME

tty 名称(如果未知则列为 ?

START TIME

命令执行开始时间

END TIME

命令执行结束时间

REAL (SECS)

实时(秒)

CPU (SECS)

CPU 时间(秒)

MEAN SIZE (K)

平均大小(千字节)

通过使用 acctcom 命令选项可以获得以下信息。

以下列表介绍 acctcom 命令选项。

-a

显示有关选定进程的平均统计信息。记录输出后将列显该统计信息。

-b

向后读取文件,先显示最新命令。如果读取标准输入,此选项将无效。

-f

列显 fork/exec 标志和系统退出状态列。输出是一个八进制数字。

-h

显示扰乱因子而不是平均内存大小,扰乱因子是进程在执行期间使用的总可用 CPU 时间的分数。扰乱因子 = 总 CPU 时间/已用时间

-i

列显输出中包含 I/O 计数的列。

-k

显示总 kcore minutes 而不是内存大小。

-m

显示平均核心转储大小。此大小是缺省值。

-q

列显平均统计信息,而不是输出记录。

-r

显示 CPU 因子: user-time/(system-time + user-time)

-t

显示单独的系统和用户 CPU 时间。

-v

从输出中排除列标题。

-C sec

只显示总 CPU 时间(系统加用户)超过 sec 秒的进程。

-e time

显示在 time(给定格式 hr[: min[: sec]])时或之前存在的进程。

-E time

显示在 time(给定格式 hr[: min[: sec]])时或之前开始的进程。对 -S-E 使用相同时间,以显示在该时间存在的进程。

-g group

只显示属于 group 的进程。

-H factor

只显示超出 factor 的进程,其中 factor 是“扰乱因子”(请参见 -h 选项)。

-I chars

只显示传送的字符数大于 chars 所指定的分界数的进程。

-l line

只显示属于终端 /dev/line 的进程。

-n pattern

只显示与 pattern(正则表达式,只是 "+" 表示出现一次或多次)匹配的命令。

-o ofile

不列显记录,而以 acct.h 格式将其复制到 ofile 文件中。

-O sec

只显示 CPU 系统时间超出 sec 秒的进程。

-s time

显示在 time(给定格式 hr[: min[: sec]])时或之后存在的进程。

-S time

显示在 time(给定格式 hr[: min[: sec]])时或之后开始的进程。

-u user

只显示属于 user 的进程。