NAMEtopsys - display information about the top users of IRIX system services
SYNOPSIStopsys [-f] [-c cthresh] [-p pthresh] [-s samples] [-t interval] [-u
uthresh]
DESCRIPTIONtopsys is a terminal based command for monitoring processes making large
numbers of system calls, or spending a large percentage of their
execution time in system mode. A process will only be considered a
candidate for display if it exceeds one of the thresholds specified by
the -c, -p or -u options as described below.
The -t option may used to set the delay between updates to interval. The
interval argument follows the syntax described in PCPIntro(1), and in the
simplest form may be an unsigned integer (the implied units in this case
are seconds). The default is 5 seconds.
By default topsys will run forever. The -s option may be used to
terminate execution after samples updates have been completed. An
optional "m" or "k" suffix can be used to multiply samples by 1000000 or
1000 respectively.
By default, topsys operates in ``curses mode'' (see below), but the -f
option may be used to disable ``curses mode'' and cause output to be sent
to the standard output without special control characters. This option
is usually used in conjunction with the -s option.
The other options control the thresholds used to select processes of
interest; a process is reported if at least one of the thresholds is
exceeded in the update interval.
-c Specifies the threshold (cthresh) in terms of the minimum rate of
system calls issued during the update interval. The default is 100
systems calls per second.
-p Specifies the threshold (pthresh) as the minimum percentage of
accumulated CPU time (user plus system) that is attributed system
time used by the process during the update interval. The default is
40%.
-u Specifies the threshold (uthresh) as the minimum total system time
in seconds consumed by the process to date. The default is 600
seconds.
CURSES MODE
By default, topsys runs in ``curses mode'' and the data displayed on the
terminal is overwritten at the end of each update interval. This display
consists of the following columns:
PID the process ID of an "interesting" process
COMMAND up to 10 letters of a process' argv[0]
Page 1
TOPSYS(1)TOPSYS(1)
USERNAME up to 7 letters of a process' user name
SCALL/S system call rate (calls per second) during the update
interval
DSYS change (in milliseconds) in system time during the update
interval
DSYS% percentage of CPU time (user plus system) that is attributed
to system time during the update interval
CPUTIME total CPU time (user plus system) used by the process to
date, reported as minutes and seconds in the format MM:SS
SYS total system CPU time used by the process to date, reported
as minutes and seconds in the format MM:SS
SYS% percentage total CPU time (user plus system) used by the
process to date that is attributed to system time
topsys displays the data about ``important'' processes in sorted order.
The sort is on either ``DSYS'' (the default) or on ``SCALL/S''. By
pressing `s', the type of sort is switched. Pressing any other key
causes the display to be updated immediately.
Note that processes which consume large amounts of system time with very
few system calls may be exhibiting symptoms of kernel floating point
emulation or floating point exceptions.
Note also that processes with very high system call rates but small
amounts of system time (or more specifically small amounts of system time
per system call) are typically either calling lightweight system calls,
e.g. gettimeofday(3), lseek(2), getuid(2), etc., or spinning on
incorrect error handling, e.g. mishandling end of file from read(2).
EXAMPLEStopsys is usually invoked as follows:
$ topsys
This is the same as:
$ topsys-t 5sec -u 600 -c 100 -p 40
To see what various daemons are doing on a ``quiet'' system, one can use:
$ topsys-c 1
Page 2
TOPSYS(1)TOPSYS(1)SEE ALSOpmchart(1), topio(1) and top(1).
AUTHORS
The original version of topsys was developed by Brian Sumner.
Page 3