prstat - report active process statistics
prstat [-acHJLmRrtTvWZ] [-d u | d] [-C psrsetlist] [-h lgrplist]
[-j projlist] [-k tasklist] [-n ntop[,nbottom]]
[-p pidlist] [-P cpulist] [-s key | -S key ]
[-u euidlist] [-U uidlist] [-z zoneidlist]
[interval [count]]
The prstat utility iteratively examines all active
processes on the system and reports statistics based on the selected output
mode and sort order. prstat provides options to examine only
processes matching specified PIDs, UIDs, zone IDs,
CPU IDs, and processor set IDs.
The -j, -k, -C, -p, -P,
-u, -U, and -z options accept lists as arguments. Items
in a list can be either separated by commas or enclosed in quotes and
separated by commas or spaces.
If you do not specify an option, prstat examines all
processes and reports statistics sorted by CPU usage.
The following options are supported:
-a
Report information about processes and users. In this
mode prstat displays separate reports about processes and users at the
same time.
-c
Print new reports below previous reports instead of
overprinting them. Long names are not truncated in this mode.
-C psrsetlist
Report only processes or lwps that are bound to processor
sets in the given list. Each processor set is identified by an integer as
reported by
psrset(8). The load averages displayed are the sum of the
load averages of the specified processor sets (see
pset_getloadavg(3C)). Processes with one or more LWPs bound to
processor sets in the given list are reported even when the
-L option
is not used.
-d u | d
Specify
u for a printed representation of the
internal representation of time. See
time(2). Specify
d for
standard date format. See
date(1).
-h lgrplist
Report only processes or lwps whose home lgroup is
in the given list of lgroups. No processes or lwps will be listed for
invalid lgroups.
-H
Report information about home lgroup. In this
mode, prstat adds an extra column showing process or lwps home
lgroup with the header LGRP.
-j projlist
Report only processes or lwps whose project
ID is
in the given list. Each project
ID can be specified as either a project
name or a numerical project
ID. See
project(5).
-J
Report information about processes and projects. In this
mode prstat displays separate reports about processes and projects at
the same time. A trailing asterisk marks a long name that has been truncated
to fit the column.
-k tasklist
Report only processes or lwps whose task ID is in
tasklist.
-L
Report statistics for each light-weight process
(LWP). By default, prstat reports only the number of LWPs
for each process.
-m
Report microstate process accounting information. This
output format includes the percentage of time the process has spent in user
mode, in system mode, and sleeping. It also includes the number of voluntary
and involuntary context switches, system calls, the number of signals
received, and the percentage of time the process has spent processing system
traps, text page faults, data page faults, waiting for user locks and waiting
for CPU (latency time).
-n ntop[,nbottom]
Restrict number of output lines. The ntop argument
determines how many lines of process or lwp statistics are reported,
and the nbottom argument determines how many lines of user, task,
project or zone statistics are reported if the -a, -t,
-T, -J or -Z options are specified. By default,
prstat displays as many lines of output that fit in a window or
terminal. When you specify the -c option or direct the output to a
file, the default values for ntop and nbottom are 15 and
5.
-p pidlist
Report only processes whose process ID is in the
given list.
-P cpulist
Report only processes or
lwps which have most
recently executed on a
CPU in the given list. Each
CPU is
identified by an integer as reported by
psrinfo(8).
-R
Put prstat in the real time scheduling class. When
this option is used, prstat is given priority over time-sharing and
interactive processes. This option is available only for superuser.
-r
Disable lookups for user names and project names. (Note
that this does not apply to lookups for the -j, -u, or -U
options.)
-s key
Sort output lines (that is, processes,
lwps, or
users) by
key in descending order. Only one
key can be used as
an argument.
There are five possible key values:
cpu
Sort by process CPU usage. This is the
default.
pri
Sort by process priority.
rss
Sort by resident set size.
size
Sort by size of process image.
time
Sort by process execution time.
-S key
Sort output lines by key in ascending order.
Possible key values are the same as for the -s option. See
-s.
-t
Report total usage summary for each user. The summary
includes the total number of processes or LWPs owned by the user, total
size of process images, total resident set size, total cpu time, and
percentages of recent cpu time and system memory.
-T
Report information about processes and tasks. In this
mode prstat displays separate reports about processes and tasks at the
same time.
-u euidlist
Report only processes whose effective user ID is
in the given list. Each user ID may be specified as either a login name
or a numerical user ID.
-U uidlist
Report only processes whose real user ID is in the
given list. Each user ID may be specified as either a login name or a
numerical user ID.
-v
Same as -m, for backwards compatibility.
-W
Truncate long names even when prstat would
normally print them in full. A trailing asterisk marks a long name that has
been truncated to fit the column.
-z zoneidlist
Report only processes or LWPs whose zone ID is in the
given list. Each zone ID can be specified as either a zone name or a numerical
zone ID. See
zones(7).
-Z
Report information about processes and zones. In this
mode, prstat displays separate reports about processes and zones at the
same time. A trailing asterisk marks a long name that has been truncated to
fit the column.
The following list defines the column headings and the meanings of
a prstat report:
PID
The process ID of the process.
USERNAME
The real user (login) name or real user ID. A
trailing asterisk marks a long name that has been truncated to fit the
column.
SWAP
The total virtual memory size of the process, including
all mapped files and devices, in kilobytes (K), megabytes (M),
or gigabytes (G).
RSS
The resident set size of the process (
RSS), in
kilobytes (
K), megabytes (
M), or gigabytes (
G). The RSS
value is an estimate provided by
proc(5) that might underestimate the
actual per-process resident set size, but is generally accurate for the
aggregated resident set size. Users who want to get more accurate usage
information for capacity planning should use the
-x option to
pmap(1) for per-process results instead.
STATE
The state of the process:
cpuN
Process is running on CPU N.
sleep
Sleeping: process is waiting for an event to
complete.
wait
Waiting: process is waiting for CPU usage to drop to the
CPU-caps enforced limits. See the description of
CPU-caps in
resource_controls(7).
run
Runnable: process in on run queue.
zombie
Zombie state: process terminated and parent not
waiting.
stop
Process is stopped.
PRI
The priority of the process. Larger numbers mean higher
priority.
NICE
Nice value used in priority computation. Only processes
in certain scheduling classes have a nice value.
TIME
The cumulative execution time for the process.
CPU
The percentage of recent CPU time used by the
process. If executing in a non-global zone and the pools facility is
active, the percentage will be that of the processors in the processor set in
use by the pool to which the zone is bound.
PROCESS
The name of the process (name of executed file).
LWP
The lwp ID of the lwp being
reported, as well as the LWP name if any is set.
NLWP
The number of lwps in the process.
With the some options, in addition to a number of the column
headings shown above, there are:
NPROC
Number of processes in a specified collection.
MEMORY
Percentage of memory used by a specified collection of
processes.
The following columns are displayed when the -v or
-m option is specified
USR
The percentage of time the process has spent in user
mode.
SYS
The percentage of time the process has spent in system
mode.
TRP
The percentage of time the process has spent in
processing system traps.
TFL
The percentage of time the process has spent processing
text page faults.
DFL
The percentage of time the process has spent processing
data page faults.
LCK
The percentage of time the process has spent waiting for
user locks.
SLP
The percentage of time the process has spent
sleeping.
LAT
The percentage of time the process has spent waiting for
CPU.
VCX
The number of voluntary context switches.
ICX
The number of involuntary context switches.
SCL
The number of system calls.
SIG
The number of signals received.
Under the -L option, one line is printed for each
lwp in the process and some reporting fields show the values for the
lwp, not the process.
The following column is displayed when the -H option is
specified:
LGRP
The home lgroup of the process or lwp.
The following operands are supported:
count
Specifies the number of times that the statistics are
repeated. By default, prstat reports statistics until a termination
signal is received.
interval
Specifies the sampling interval in seconds; the default
interval is 5 seconds.
Example 1 Reporting the Five Most Active Super-User
Processes
The following command reports the five most active super-user
processes running on CPU1 and CPU2:
example% prstat -u root -n 5 -P 1,2 1 1
PID USERNAME SWAP RSS STATE PRI NICE TIME CPU PROCESS/LWP
306 root 3024K 1448K sleep 58 0 0:00.00 0.3% sendmail/1
102 root 1600K 592K sleep 59 0 0:00.00 0.1% in.rdisc/1
250 root 1000K 552K sleep 58 0 0:00.00 0.0% utmpd/1
288 root 1720K 1032K sleep 58 0 0:00.00 0.0% sac/1
1 root 744K 168K sleep 58 0 0:00.00 0.0% init/1
TOTAL: 25, load averages: 0.05, 0.08, 0.12
Example 2 Displaying Verbose Process Usage Information
The following command displays verbose process usage information
about processes with lowest resident set sizes owned by users root
and john.
example% prstat -S rss -n 5 -vc -u root,john
PID USERNAME USR SYS TRP TFL DFL LCK SLP LAT VCX ICX SCL SIG PROCESS/LWP
1 root 0.0 0.0 - - - - 100 - 0 0 0 0 init/1
102 root 0.0 0.0 - - - - 100 - 0 0 3 0 in.rdisc/1
250 root 0.0 0.0 - - - - 100 - 0 0 0 0 utmpd/1
1185 john 0.0 0.0 - - - - 100 - 0 0 0 0 csh/1
240 root 0.0 0.0 - - - - 100 - 0 0 0 0 powerd/4
TOTAL: 71, load averages: 0.02, 0.04, 0.08
The following exit values are returned:
0
Successful completion.
1
An error occurred.
date(1), lgrpinfo(1), plgrp(1),
proc(1), ps(1), time(2), pset_getloadavg(3C),
proc(5), project(5), attributes(7),
resource_controls(7), zones(7), psrinfo(8),
psrset(8), sar(8)
The snapshot of system usage displayed by prstat is true
only for a split-second, and it may not be accurate by the time it is
displayed. When the -m option is specified, prstat tries to
turn on microstate accounting for each process; the original state is
restored when prstat exits. See proc(5) for additional
information about the microstate accounting facility.
The total memory size reported in the SWAP and RSS columns for
groups of processes can sometimes overestimate the actual amount of memory
used by processes with shared memory segments.