top
— display
sorted information about processes
top
[-a
|
-d
| -e
|
-c
mode]
-
- [
-F
| -f
]
- [
-h
]
- [
-i
interval]
- [
-l
samples]
- [
-ncols
columns]
- [
-o
key |
-O
skey]
- [
-R
| -r
]
- [
-S
]
- [
-s
delay-secs]
- [
-n
nprocs]
- [
-stats
keys]
- [
-pid
processid]
- [
-user
username]
- [
-U
username]
- [
-u
]
The top
program periodically displays a
sorted list of system processes. The default sorting key is pid, but other
keys can be used instead. Various output options are available.
Command line option specifications are processed from left to
right. Options can be specified more than once. If conflicting options are
specified, later specifications override earlier ones. This makes it viable
to create a shell alias for top
with preferred
defaults specified, then override those preferred defaults as desired on the
command line.
-a
- Equivalent to
-c
a.
-c
mode
- Set event counting mode to mode. The supported modes
are
- a
- Accumulative mode. Count events cumulatively, starting at the launch
of
top
. Calculate CPU usage and CPU time since
the launch of top
.
- d
- Delta mode. Count events relative to the previous sample. Calculate
CPU usage since the previous sample. This mode by default disables the
memory object map reporting. The memory object map reporting may be
re-enabled with the
-r
option or the
interactive r
command.
- e
- Absolute mode. Count events using absolute counters.
- n
- Non-event mode (default). Calculate CPU usage since the previous
sample.
-d
- Equivalent to
-c
d.
-e
- Equivalent to
-c
e.
-F
- Do not calculate statistics on shared libraries, also known as
frameworks.
-f
- Calculate statistics on shared libraries, also known as frameworks
(default).
-h
- Print command line usage information and exit.
-i
interval
- Update framework (
-f
) info every
interval samples; see the
PERFORMANCE/ACCURACY
TRADEOFF section for more details.
-l
samples
- Use logging mode and display samples samples, even
if standard output is a terminal. 0 is treated as infinity. Rather than
redisplaying, output is periodically printed in raw form. Note that the
first sample displayed will have an invalid %CPU displayed for each
process, as it is calculated using the delta between samples.
-ncols
columns
- Display columns when using logging mode. The default
is infinite. The number must be > 0 or an error will occur.
-n
nprocs
- Only display up to nprocs processes.
-O
skey
- Use skey as a secondary key when ordering the
process display. See
-o
for key names
(pid is the default
).
-o
key
- Order the process display by sorting on key in
descending order. A + or - can be prefixed to the key name to specify
ascending or descending order, respectively. The supported keys are:
- pid
- Process ID
- command
- Command name.
- cpu
- CPU usage. (default).
- cpu_me
- CPU time charged to me by other processes.
- cpu_others
- CPU time charged to other processes by me.
- csw
- The number of context switches.
- time
- Execution time.
- threads
- alias: th
Number of threads (total/running).
- ports
- alias: prt
Number of Mach ports.
- mregion
- alias: mreg, reg
Number of memory regions.
- mem
- Physical memory footprint of the process.
- rprvt
- Resident private address space size.
- purg
- Purgeable memory size.
- vsize
- Total memory size.
- vprvt
- Private address space size.
- kprvt
- Private kernel memory size.
- kshrd
- Shared kernel memory size.
- pgrp
- Process group ID.
- ppid
- Parent process ID.
- state
- alias: pstate
Process state.
One of "zombie", "running", "stuck" (i.e.
uninterruptible sleep), "sleeping", "idle",
"stopped", "halted", or "unknown".
- uid
- User ID.
- wq
- alias: #wq, workqueue
The workqueue total/running.
- faults
- alias: fault
The number of page faults.
- cow
- alias: cow_faults
The copy-on-write faults.
- user
- alias: username
Username.
- msgsent
- Total number of Mach messages sent.
- msgrecv
- Total number of Mach messages received.
- sysbsd
- Total BSD syscalls.
- sysmach
- Total Mach syscalls.
- pageins
- Total pageins.
- boosts
- The number of boosts held by the process. This is followed by the
number of times the process has transitioned from unboosted to boosted
in brackets. An asterisk before the value indicates that the process
was able to send boosts at some point since the previous update. For
more information about boosts, see
xpc_transaction_begin(3).
- instrs
- The number of instructions retired by the process in both user space
and the kernel.
- cycles
- The number of cycles spent executing instructions in the process in
both user space and the kernel.
- jetpri
- Jetsam priority of the process.
-R
- Do not traverse and report the memory object map for each process
(default).
-r
- Traverse and report the memory object map for each process.
-S
- Display the global statistics for swap and purgeable memory.
-s
delay-secs
- Set the delay between updates to delay-secs seconds.
The default delay between updates is 1 second.
-stats
keys
- Only display the comma separated statistics. See the
-o
flag for the valid
keys.
-pid
processid
- Only display processid in
top
. This option may be specified multiple
times.
-user
user
- Only display processes owned by user
-U
user
- This is an alias for
-user
.
-u
- This is an alias equivalent to:
-o
cpu -O
time
The first several lines of the top
display
show various global state. All of the information is labeled. Following is
an alphabetical list of global state fields and their descriptions.
- CPU
- Percentage of processor usage, broken into user, system, and idle
components. The time period for which these percentages are calculated
depends on the event counting mode.
- Disks
- Number and total size of disk reads and writes.
- LoadAvg
- Load average over 1, 5, and 15 minutes. The load average is the average
number of jobs in the run queue.
- MemRegions
- Number and total size of memory regions, and total size of memory regions
broken into private (broken into non-library and library) and shared
components.
- Networks
- Number and total size of input and output network packets.
- PhysMem
- Physical memory usage, broken into wired, active, inactive, used, and free
components.
- Procs
- Total number of processes and number of processes in each process
state.
- SharedLibs
- Resident sizes of code and data segments, and link editor memory
usage.
- Threads
- Number of threads.
- Time
- Time, in H:MM:SS format. When running in logging mode, Time is in
YYYY/MM/DD HH:MM:SS format by default, but may be overridden with
accumulative mode. When running in accumulative event counting mode, the
Time is in HH:MM:SS since the beginning of the
top
process.
- VirtMem
- Total virtual memory, virtual memory consumed by shared libraries, and
number of pageins and pageouts.
- Swap
- Swap usage: total size of swap areas, amount of swap space in use and
amount of swap space available.
- Purgeable
- Number of pages purged and number of pages currently purgeable.
Below the global state fields, a list of processes is displayed.
The fields that are displayed depend on the options that are set. The pid
field displays the following for the architecture:
+ for 64-bit native architecture, or - for 32-bit native
architecture, or * for a non-native architecture.
When top
is run in interactive
(non-logging) mode, it is possible to control the output of
top
, as well as interactively send signals to
processes. The interactive command syntax is terse. Each command is one
character, followed by 0 to 2 arguments. Commands that take arguments prompt
interactively for the arguments, and where applicable, the default value is
shown in square brackets. The default value can be selected by leaving the
input field blank and pressing enter. ^G
escapes the
interactive argument prompt, and has the same effect as leaving the input
field blank and pressing enter.
The following commands are supported:
- ?
- Display the help screen. Any character exits help screen mode. This
command always works, even in the middle of a command.
- ^L
- Redraw the screen.
- cmode
- Set output mode to mode. See the
-c
option for descriptions of the allowed
modes.
- Oskey
- Use skey as a secondary key when ordering the
process display. See the
-o
option for key
names.
- okey
- Order the process display by sorting on key in
descending order. A + or - can be prefixed to the key name to specify
ascending or descending order, respectively. The supported keys and alises
are listed with the
-o
option above.
- q
- Quit.
- r
- Toggle traversal and reporting of the memory object map for each
process.
- Ssignalpid
- Send signal signal to pid.
signal can be specified either as a number or as a
name (for example,
HUP
). The default signal starts
out as TERM
. Each time a signal is successfully
sent, the default signal is updated to be that signal.
pid is a process id.
- s delay-secs
- Set the delay between updates to delay-secs
seconds.
- U user
- Only display processes owned by user. Either the
username or uid number can be specified. To display all processes, press
enter without entering a username or uid number.
Calculating detailed memory statistics is fundamentally
resource-intensive. To reduce the CPU usage in top
,
the -i
option has been introduced to allow the user
to tune this tradeoff. With the default value of 10, framework stats will be
updated once every 10 samples. Specifying -i
1 will result in the most accurate display, at the
expense of system resources.
When N/A
occurs in a stat, it's caused by
the memory object map reporting being disabled. Memory object map reporting
is disabled by default in delta mode, but may be optionally enabled via
-r
or the interactive r
command. To enable the -r
option, use it after any
-c
mode options.
- top -o cpu -O +rsize -s 5 -n 20
- Sort the processes according to CPU usage (descending) and resident memory
size (ascending), sample and update the display at 5 second intervals, and
limit the display to 20 processes.
- top -c d
- Run
top
in delta mode.
- top -stats pid,command,cpu,th,pstate,time
- Display only the specified statistics, regardless of any growth of the
terminal. If the terminal is too small, only the statistics that fit will
be displayed.