541567a189
Signed-off-by: Jim Warner <james.warner@comcast.net>
2712 lines
101 KiB
Groff
2712 lines
101 KiB
Groff
.ig
|
|
. manual page for NEW and IMPROVED linux top
|
|
.
|
|
. Copyright (c) 2002-2022, by: Jim Warner <james.warner@comcast.net
|
|
.
|
|
. This file may be copied under the terms of the GNU Public License.
|
|
..
|
|
\# Setup ////////////////////////////////////////////////////////////////
|
|
\# Commonly used strings (for consistency) ----------
|
|
\# - our em-dashes
|
|
.ds Em \fR\ \-\-\ \fR
|
|
.ds EM \fB\ \-\-\ \fR
|
|
\# - our program name (makes great grammar)
|
|
.ds We top
|
|
.ds WE \fBtop\fR
|
|
\# - other misc strs for consistent usage
|
|
.ds F \fIOff\fR
|
|
.ds O \fIOn\fR
|
|
.
|
|
.ds AK asterisk (`*')
|
|
.ds AM alternate\-display mode
|
|
.ds AS auxiliary storage
|
|
.ds CF configuration file
|
|
.ds CG `current' window/field group
|
|
.ds CI interactive command
|
|
.ds CO command\-line option
|
|
.ds CT command toggle
|
|
.ds CW `current' window
|
|
.ds FG field group
|
|
.ds FM full\-screen mode
|
|
.ds KA arrow key
|
|
.ds KS scrolling key
|
|
.ds MP physical memory
|
|
.ds MS swap file
|
|
.ds MV virtual memory
|
|
.ds NT \fBNote\fR:
|
|
.ds PU CPU
|
|
.ds Pu cpu
|
|
.ds SA summary area
|
|
.ds TA task area
|
|
.ds TD task display
|
|
.ds TT \fBprocesses\fR or \fBthreads\fR
|
|
.ds TW task window
|
|
\# Reference to the various widths/sizes ------------
|
|
\# - the max screen width limit
|
|
.ds WX 512
|
|
\# - the header width w/ all fields
|
|
.ds WF approximately 250
|
|
\# - pid monitoring limit
|
|
\# Xref's that depend on/mention other stuff --------
|
|
.ds Xa see
|
|
.ds XC See the
|
|
.ds Xc see the
|
|
.ds XT See topic
|
|
.ds Xt see topic
|
|
.ds XX See `OVERVIEW, Linux Memory Types' for additional details
|
|
.ds ZX Accessing smaps values is 10x more costly than other \
|
|
memory statistics and data for other users requires root privileges
|
|
.
|
|
.\" Document /////////////////////////////////////////////////////////////
|
|
.\" ----------------------------------------------------------------------
|
|
.TH TOP 1 "March 2022" "procps-ng" "User Commands"
|
|
.\" ----------------------------------------------------------------------
|
|
.nh
|
|
|
|
.\" ----------------------------------------------------------------------
|
|
.SH NAME
|
|
.\" ----------------------------------------------------------------------
|
|
top \- display Linux processes
|
|
|
|
.\" ----------------------------------------------------------------------
|
|
.SH SYNOPSIS
|
|
.\" ----------------------------------------------------------------------
|
|
\*(WE [options]
|
|
|
|
.\" ----------------------------------------------------------------------
|
|
.SH DESCRIPTION
|
|
.\" ----------------------------------------------------------------------
|
|
The \*(WE program provides a dynamic real-time view of a running system.
|
|
It can display\fB system\fR summary information as well as a list of
|
|
\*(TT currently being managed by the Linux kernel.
|
|
The types of system summary information shown and the types, order and
|
|
size of information displayed for processes are all user configurable
|
|
and that configuration can be made persistent across restarts.
|
|
|
|
The program provides a limited interactive interface for process
|
|
manipulation as well as a much more extensive interface for personal
|
|
configuration \*(Em encompassing every aspect of its operation.
|
|
And while \*(WE is referred to throughout this document, you are free
|
|
to name the program anything you wish.
|
|
That new name, possibly an alias, will then be reflected on \*(We's
|
|
display and used when reading and writing a \*(CF.
|
|
|
|
.\" ----------------------------------------------------------------------
|
|
.SH OVERVIEW
|
|
.\" ----------------------------------------------------------------------
|
|
.\" ......................................................................
|
|
.SS Documentation
|
|
.\" ----------------------------------------------------------------------
|
|
The remaining Table of Contents
|
|
|
|
.nf
|
|
OVERVIEW
|
|
Operation
|
|
Linux Memory Types
|
|
1. COMMAND\-LINE Options
|
|
2. SUMMARY Display
|
|
a. UPTIME and LOAD Averages
|
|
b. TASK and CPU States
|
|
c. MEMORY Usage
|
|
3. FIELDS / Columns Display
|
|
a. DESCRIPTIONS of Fields
|
|
b. MANAGING Fields
|
|
4. INTERACTIVE Commands
|
|
a. GLOBAL Commands
|
|
b. SUMMARY AREA Commands
|
|
c. TASK AREA Commands
|
|
1. Appearance
|
|
2. Content
|
|
3. Size
|
|
4. Sorting
|
|
d. COLOR Mapping
|
|
5. ALTERNATE\-DISPLAY Provisions
|
|
a. WINDOWS Overview
|
|
b. COMMANDS for Windows
|
|
c. SCROLLING a Window
|
|
d. SEARCHING in a Window
|
|
e. FILTERING in a Window
|
|
6. FILES
|
|
a. PERSONAL Configuration File
|
|
b. ADDING INSPECT Entries
|
|
c. SYSTEM Configuration File
|
|
d. SYSTEM Restrictions File
|
|
7. ENVIRONMENT VARIABLE(S)
|
|
8. STUPID TRICKS Sampler
|
|
a. Kernel Magic
|
|
b. Bouncing Windows
|
|
c. The Big Bird Window
|
|
d. The Ol' Switcheroo
|
|
9. BUGS, 10. SEE Also
|
|
.fi
|
|
|
|
.\" ......................................................................
|
|
.SS Operation
|
|
.\" ----------------------------------------------------------------------
|
|
When operating \*(We, the two most important keys are the help (h or ?)
|
|
key and quit (`q') key.
|
|
Alternatively, you could simply use the traditional interrupt key (^C)
|
|
when you're done.
|
|
|
|
When started for the first time, you'll be presented with these traditional
|
|
elements on the main \*(We screen: 1) Summary Area; 2) Fields/Columns Header;
|
|
3) Task Area.
|
|
Each of these will be explored in the sections that follow.
|
|
There is also an Input/Message line between the Summary Area and Columns
|
|
Header which needs no further explanation.
|
|
|
|
The main \*(We screen is \fIgenerally\fR quite adaptive to changes in
|
|
terminal dimensions under X-Windows.
|
|
Other \*(We screens may be less so, especially those with static text.
|
|
It ultimately depends, however, on your particular window manager and
|
|
terminal emulator.
|
|
There may be occasions when their view of terminal size and current contents
|
|
differs from \*(We's view, which is always based on operating system calls.
|
|
|
|
Following any re-size operation, if a \*(We screen is corrupted, appears
|
|
incomplete or disordered, simply typing something innocuous like a
|
|
punctuation character or cursor motion key will usually restore it.
|
|
In extreme cases, the following sequence almost certainly will:
|
|
.nf
|
|
\fIkey/cmd objective \fR
|
|
^Z \fBsuspend\fR \*(We
|
|
fg \fBresume\fR \*(We
|
|
<Left> force a screen \fBredraw\fR (if necessary)
|
|
.fi
|
|
|
|
But if the display is still corrupted, there is one more step you could try.
|
|
Insert this command after \*(We has been suspended but before resuming it.
|
|
.nf
|
|
\fIkey/cmd objective \fR
|
|
reset restore your \fBterminal settings\fR
|
|
.fi
|
|
|
|
\*(NT the width of \*(We's display will be limited to \*(WX positions.
|
|
Displaying all fields requires \*(WF characters.
|
|
Remaining screen width is usually allocated to any variable width columns
|
|
currently visible.
|
|
The variable width columns, such as COMMAND, are noted in topic
|
|
3a. DESCRIPTIONS of Fields.
|
|
Actual output width may also be influenced by the \-w switch, which is
|
|
discussed in topic 1. COMMAND\-LINE Options.
|
|
|
|
Lastly, some of \*(We's screens or functions require the use of cursor
|
|
motion keys like the standard \*(KAs plus the Home, End, PgUp and PgDn keys.
|
|
If your terminal or emulator does not provide those keys, the following
|
|
combinations are accepted as alternatives:
|
|
.nf
|
|
\fI key equivalent-keys \fR
|
|
Left alt +\fB h \fR
|
|
Down alt +\fB j \fR
|
|
Up alt +\fB k \fR
|
|
Right alt +\fB l \fR
|
|
Home alt + ctrl +\fB h \fR
|
|
PgDn alt + ctrl +\fB j \fR
|
|
PgUp alt + ctrl +\fB k \fR
|
|
End alt + ctrl +\fB l \fR
|
|
.fi
|
|
|
|
The \fBUp\fR and \fBDown\fR \*(KAs have special significance when prompted
|
|
for line input terminated with the <Enter> key.
|
|
Those keys, or their aliases, can be used to retrieve previous input lines
|
|
which can then be edited and re-input.
|
|
And there are four additional keys available with line oriented input.
|
|
.nf
|
|
\fI key special-significance \fR
|
|
Up recall \fBolder\fR strings for re-editing
|
|
Down recall \fBnewer\fR strings or \fBerase\fR entire line
|
|
Insert toggle between \fBinsert\fR and \fBovertype\fR modes
|
|
Delete character \fBremoved\fR at cursor, moving others left
|
|
Home jump to \fBbeginning\fR of input line
|
|
End jump to \fBend\fR of input line
|
|
.fi
|
|
|
|
.\" ......................................................................
|
|
.SS Linux Memory Types
|
|
.\" ----------------------------------------------------------------------
|
|
For our purposes there are three types of memory, and one is optional.
|
|
First is \*(MP, a limited resource where code and data must
|
|
reside when executed or referenced.
|
|
Next is the optional \*(MS, where modified (dirty) memory can be saved
|
|
and later retrieved if too many demands are made on \*(MP.
|
|
Lastly we have \*(MV, a nearly unlimited resource serving the
|
|
following goals:
|
|
|
|
.nf
|
|
1. abstraction, free from physical memory addresses/limits
|
|
2. isolation, every process in a separate address space
|
|
3. sharing, a single mapping can serve multiple needs
|
|
4. flexibility, assign a virtual address to a file
|
|
.fi
|
|
|
|
Regardless of which of these forms memory may take, all are managed as
|
|
pages (typically 4096 bytes) but expressed by default in \*(We as
|
|
KiB (kibibyte).
|
|
The memory discussed under topic `2c. MEMORY Usage' deals with \*(MP
|
|
and the \*(MS for the system as a whole.
|
|
The memory reviewed in topic `3. FIELDS / Columns Display'
|
|
embraces all three memory types, but for individual processes.
|
|
|
|
For each such process, every memory page is restricted to a single
|
|
quadrant from the table below.
|
|
Both \*(MP and \*(MV can include any of the four, while the \*(MS only
|
|
includes #1 through #3.
|
|
The memory in quadrant #4, when modified, acts as its own dedicated \*(MS.
|
|
|
|
.nf
|
|
\fBPrivate\fR | \fBShared\fR
|
|
\fB1\fR | \fB2\fR
|
|
\fBAnonymous\fR . stack |
|
|
. malloc() |
|
|
. brk()/sbrk() | . POSIX shm*
|
|
. mmap(PRIVATE, ANON) | . mmap(SHARED, ANON)
|
|
-----------------------+----------------------
|
|
. mmap(PRIVATE, fd) | . mmap(SHARED, fd)
|
|
\fBFile-backed\fR . pgms/shared libs |
|
|
\fB3\fR | \fB4\fR
|
|
.fi
|
|
|
|
The following may help in interpreting process level memory values displayed
|
|
as scalable columns and discussed under topic `3a. DESCRIPTIONS of Fields'.
|
|
|
|
.nf
|
|
%MEM \- simply RES divided by total \*(MP
|
|
CODE \- the `pgms' portion of quadrant \fB3\fR
|
|
DATA \- the entire quadrant \fB1\fR portion of VIRT plus all
|
|
explicit mmap file-backed pages of quadrant \fB3\fR
|
|
RES \- anything occupying \*(MP which, beginning with
|
|
Linux-4.5, is the sum of the following three fields:
|
|
RSan \- quadrant \fB1\fR pages, which include any
|
|
former quadrant \fB3\fR pages if modified
|
|
RSfd \- quadrant \fB3\fR and quadrant \fB4\fR pages
|
|
RSsh \- quadrant \fB2\fR pages
|
|
RSlk \- subset of RES which cannot be swapped out (any quadrant)
|
|
SHR \- subset of RES (excludes \fB1\fR, includes all \fB2\fR & \fB4\fR, some \fB3\fR)
|
|
SWAP \- potentially any quadrant except \fB4\fR
|
|
USED \- simply the sum of RES and SWAP
|
|
VIRT \- everything in-use and/or reserved (all quadrants)
|
|
.fi
|
|
|
|
\*(NT Even though program images and shared libraries are considered
|
|
\fIprivate\fR to a process, they will be accounted for as \fIshared\fR
|
|
(SHR) by the kernel.
|
|
|
|
.\" ----------------------------------------------------------------------
|
|
.SH 1. COMMAND-LINE Options
|
|
.\" ----------------------------------------------------------------------
|
|
Mandatory\fI arguments\fR to long options are mandatory for short
|
|
options too.
|
|
|
|
Although not required, the equals sign can be used with either option
|
|
form and whitespace before and/or after the `=' is permitted.
|
|
|
|
.TP 3
|
|
\-\fBb\fR, \fB\-\-batch\fR
|
|
Starts \*(We in Batch mode, which could be useful for sending output
|
|
from \*(We to other programs or to a file.
|
|
In this mode, \*(We will not accept input and runs until the iterations
|
|
limit you've set with the `\-n' \*(CO or until killed.
|
|
|
|
.TP 3
|
|
\-\fBc\fR, \fB\-\-cmdline\-toggle\fR
|
|
Starts \*(We with the last remembered `c' state reversed.
|
|
Thus, if \*(We was displaying command lines, now that field will show program
|
|
names, and vice versa.
|
|
\*(XC `c' \*(CI for additional information.
|
|
|
|
.TP 3
|
|
\-\fBd\fR, \fB\-\-delay\fR = \fISECS\fR [\fI.TENTHS\fR]\fR
|
|
Specifies the delay between screen updates, and overrides the corresponding
|
|
value in one's personal \*(CF or the startup default.
|
|
Later this can be changed with the `d' or `s' \*(CIs.
|
|
|
|
Fractional seconds are honored, but a negative number is not allowed.
|
|
In all cases, however, such changes are prohibited if \*(We is running
|
|
in Secure mode, except for root (unless the `s' \*(CO was used).
|
|
For additional information on Secure mode \*(Xt 6d. SYSTEM Restrictions File.
|
|
|
|
.TP 3
|
|
\-\fBE\fR, \fB\-\-scale-summary-mem\fR = \fIk\fR | \fIm\fR | \fIg\fR | \fIt\fR | \fIp\fR | \fIe\fR
|
|
Instructs \*(We to force \*(SA memory to be scaled as:
|
|
.nf
|
|
k \- kibibytes
|
|
m \- mebibytes
|
|
g \- gibibytes
|
|
t \- tebibytes
|
|
p \- pebibytes
|
|
e \- exbibytes
|
|
.fi
|
|
|
|
Later this can be changed with the `E' \*(CT.
|
|
|
|
.TP 3
|
|
\-\fBe\fR, \fB\-\-scale-task-mem\fR = \fIk\fR | \fIm\fR | \fIg\fR | \fIt\fR | \fIp\fR
|
|
Instructs \*(We to force \*(TA memory to be scaled as:
|
|
.nf
|
|
k \- kibibytes
|
|
m \- mebibytes
|
|
g \- gibibytes
|
|
t \- tebibytes
|
|
p \- pebibytes
|
|
.fi
|
|
|
|
Later this can be changed with the `e' \*(CT.
|
|
|
|
.TP 3
|
|
\-\fBH\fR, \fB\-\-threads-show\fR
|
|
Instructs \*(We to display individual threads.
|
|
Without this \*(CO a summation of all threads in each process is shown.
|
|
Later this can be changed with the `H' \*(CI.
|
|
|
|
.TP 3
|
|
\-\fBh\fR, \fB\-\-help\fR
|
|
Display usage help text, then quit.
|
|
|
|
.TP 3
|
|
\-\fBi\fR, \fB\-\-idle-toggle\fR
|
|
Starts \*(We with the last remembered `i' state reversed.
|
|
When this toggle is \*F, tasks that have not used any \*(PU since the
|
|
last update will not be displayed.
|
|
For additional information regarding this toggle
|
|
\*(Xt 4c. TASK AREA Commands, SIZE.
|
|
|
|
.TP 3
|
|
\-\fBn\fR, \fB\-\-iterations\fR = \fINUMBER\fR
|
|
Specifies the maximum number of iterations, or frames, \*(We should
|
|
produce before ending.
|
|
|
|
.TP 3
|
|
\-\fBO\fR, \fB\-\-list-fields\fR
|
|
This option acts as a form of help for the \-o option shown below.
|
|
It will cause \*(We to print each of the available field names on a
|
|
separate line, then quit.
|
|
Such names are subject to NLS (National Language Support) translation.
|
|
|
|
.TP 3
|
|
\-\fBo\fR, \fB\-\-sort-override\fR = \fIFIELDNAME\fR
|
|
Specifies the name of the field on which tasks will be sorted, independent
|
|
of what is reflected in the configuration file.
|
|
You can prepend a `+' or `\-' to the field name to also override the sort
|
|
direction.
|
|
A leading `+' will force sorting high to low, whereas a `\-' will ensure
|
|
a low to high ordering.
|
|
|
|
This option exists primarily to support automated/scripted batch mode
|
|
operation.
|
|
|
|
.TP 3
|
|
\-\fBp\fR, \fB\-\-pid\fR = \fIPIDLIST\fR \
|
|
(as: \fI1\fR,\fI2\fR,\fI3\fR, ...\fR or \fR-p\fI1\fR -p\fI2\fR -p\fI3\fR ...)
|
|
Monitor only processes with specified process IDs.
|
|
However, when combined with Threads mode (`H'), all processes in the
|
|
thread group (\*(Xa TGID) of each monitored PID will also be shown.
|
|
|
|
This option can be given up to 20 times, or you can provide a comma delimited
|
|
list with up to 20 pids.
|
|
Co-mingling both approaches is permitted.
|
|
|
|
A pid value of zero will be treated as the process id of the \*(We program
|
|
itself once it is running.
|
|
|
|
This is a \*(CO only and should you wish to return to normal operation,
|
|
it is not necessary to quit and restart \*(We \*(Em just issue any
|
|
of these \*(CIs: `=', `u' or `U'.
|
|
|
|
The `p', `u' and `U' \*(COs are mutually exclusive.
|
|
|
|
.TP 3
|
|
\-\fBS\fR, \fB\-\-accum-time-toggle\fR
|
|
Starts \*(We with the last remembered `S' state reversed.
|
|
When Cumulative time mode is \*O, each process is listed with the \*(Pu
|
|
time that it and its dead children have used.
|
|
\*(XC `S' \*(CI for additional information regarding this mode.
|
|
|
|
.TP 3
|
|
\-\fBs\fR, \fB\-\-secure-mode\fR
|
|
Starts \*(We with secure mode forced, even for root.
|
|
This mode is far better controlled through a system \*(CF
|
|
(\*(Xt 6. FILES).
|
|
|
|
.TP 3
|
|
\-\fBU\fR, \fB\-\-filter-any-user\fR = \fIUSER\fR (as: \fInumber\fR or \fIname\fR)
|
|
Display only processes with a user id or user name matching that given.
|
|
This option matches on\fI any\fR user (\fIreal\fR, \fIeffective\fR,
|
|
\fIsaved\fR, or \fIfilesystem\fR).
|
|
|
|
Prepending an exclamation point (`!') to the user id or name instructs \*(We
|
|
to display only processes with users not matching the one provided.
|
|
|
|
The `p', `U' and `u' \*(COs are mutually exclusive.
|
|
|
|
.TP 3
|
|
\-\fBu\fR, \fB\-\-filter-only-euser\fR = \fIUSER\fR (as: \fInumber\fR or \fIname\fR)
|
|
Display only processes with a user id or user name matching that given.
|
|
This option matches on the\fI effective\fR user id only.
|
|
|
|
Prepending an exclamation point (`!') to the user id or name instructs \*(We
|
|
to display only processes with users not matching the one provided.
|
|
|
|
The `p', `U' and `u' \*(COs are mutually exclusive.
|
|
|
|
.TP 3
|
|
\-\fBV\fR, \fB\-\-version\fR
|
|
Display version information, then quit.
|
|
|
|
.TP 3
|
|
\-\fBw\fR, \fB\-\-width\fR [=\fICOLUMNS\fR]
|
|
In Batch mode, when used without an argument \*(We will format
|
|
output using the COLUMNS= and LINES= environment variables, if set.
|
|
Otherwise, width will be fixed at the maximum \*(WX columns.
|
|
With an argument, output width can be decreased or increased (up to \*(WX)
|
|
but the number of rows is considered unlimited.
|
|
|
|
In normal display mode, when used without an argument \*(We will\fI attempt\fR
|
|
to format output using the COLUMNS= and LINES= environment variables, if set.
|
|
With an argument, output width can only be decreased, not increased.
|
|
Whether using environment variables or an argument with \-w, when\fI not\fR
|
|
in Batch mode actual terminal dimensions can never be exceeded.
|
|
|
|
\*(NT Without the use of this \*(CO, output width is always based on the
|
|
terminal at which \*(We was invoked whether or not in Batch mode.
|
|
|
|
.TP 3
|
|
\-\fB1\fR, \fB\-\-single-cpu-toggle\fR
|
|
Starts \*(We with the last remembered Cpu States portion of the \*(SA reversed.
|
|
Either all \*(Pu information will be displayed in a single line or
|
|
each \*(Pu will be displayed separately, depending on the state of the NUMA Node
|
|
\*(CT ('2').
|
|
|
|
\*(XC `1' and '2' \*(CIs for additional information.
|
|
|
|
.\" ----------------------------------------------------------------------
|
|
.SH 2. SUMMARY Display
|
|
.\" ----------------------------------------------------------------------
|
|
Each of the following three areas are individually controlled through
|
|
one or more \*(CIs.
|
|
\*(XT 4b. SUMMARY AREA Commands for additional information regarding
|
|
these provisions.
|
|
|
|
.\" ......................................................................
|
|
.SS 2a. UPTIME and LOAD Averages
|
|
.\" ----------------------------------------------------------------------
|
|
This portion consists of a single line containing:
|
|
.nf
|
|
\fBprogram\fR or\fB window\fR name, depending on display mode
|
|
current time and length of time since last boot
|
|
total number of users
|
|
system load avg over the last 1, 5 and 15 minutes
|
|
.fi
|
|
|
|
.\" ......................................................................
|
|
.SS 2b. TASK and CPU States
|
|
.\" ----------------------------------------------------------------------
|
|
This portion consists of a minimum of two lines.
|
|
In an SMP environment, additional lines can reflect individual \*(PU
|
|
state percentages.
|
|
|
|
Line 1 shows total\fB tasks\fR or\fB threads\fR, depending on the state
|
|
of the Threads-mode toggle.
|
|
That total is further classified as:
|
|
.nf
|
|
running; sleeping; stopped; zombie
|
|
.fi
|
|
|
|
Line 2 shows \*(PU state percentages based on the interval since the
|
|
last refresh.
|
|
|
|
As a default, percentages for these individual categories are displayed.
|
|
Depending on your kernel version, the \fBst\fR field may not be shown.
|
|
.nf
|
|
\fBus\fR : time running un-niced user processes
|
|
\fBsy\fR : time running kernel processes
|
|
\fBni\fR : time running niced user processes
|
|
\fBid\fR : time spent in the kernel idle handler
|
|
\fBwa\fR : time waiting for I/O completion
|
|
\fBhi\fR : time spent servicing hardware interrupts
|
|
\fBsi\fR : time spent servicing software interrupts
|
|
\fBst\fR : time stolen from this vm by the hypervisor
|
|
.fi
|
|
|
|
In the alternate cpu states display modes, beyond the first tasks/threads line,
|
|
an abbreviated summary is shown consisting of these elements:
|
|
.nf
|
|
\fR a \fR b \fR c \fR d
|
|
%Cpu(s): \fB75.0\fR/25.0 \fB100\fR[ ...
|
|
|
|
.fi
|
|
|
|
Where: a) is the `user' (us + ni) percentage; b) is the `system'
|
|
(sy + hi + si) percentage; c) is the total; and d) is one of two
|
|
visual graphs of those representations.
|
|
\*(XT 4b. SUMMARY AREA Commands and the `t' command for additional information
|
|
on that special 4-way toggle.
|
|
|
|
.\" ......................................................................
|
|
.SS 2c. MEMORY Usage
|
|
.\" ----------------------------------------------------------------------
|
|
This portion consists of two lines which may express values in kibibytes (KiB)
|
|
through exbibytes (EiB) depending on the scaling factor enforced
|
|
with the `E' \*(CI.
|
|
|
|
As a default, Line 1 reflects \*(MP, classified as:
|
|
.nf
|
|
total, free, used and buff/cache
|
|
.fi
|
|
|
|
Line 2 reflects mostly \*(MV, classified as:
|
|
.nf
|
|
total, free, used and avail (which is \*(MP)
|
|
.fi
|
|
|
|
The \fBavail\fR number on line 2 is an estimation of \*(MP available for
|
|
starting new applications, without swapping.
|
|
Unlike the \fBfree\fR field, it attempts to account for readily reclaimable
|
|
page cache and memory slabs.
|
|
It is available on kernels 3.14, emulated on kernels 2.6.27+, otherwise
|
|
the same as \fBfree\fR.
|
|
|
|
In the alternate memory display modes, two abbreviated summary lines
|
|
are shown consisting of these elements:
|
|
.nf
|
|
\fR a \fR b c
|
|
GiB Mem : \fB18.7\fR/15.738 [ ...
|
|
GiB Swap: \fB 0.0\fR/7.999 [ ...
|
|
.fi
|
|
|
|
Where: a) is the percentage used; b) is the total available; and c) is one of two
|
|
visual graphs of those representations.
|
|
|
|
In the case of \*(MP, the percentage represents the \fBtotal\fR minus the estimated
|
|
\fBavail\fR noted above.
|
|
The `Mem' graph itself is divided between \fBused\fR and any remaining memory not
|
|
otherwise accounted for by \fBavail\fR.
|
|
\*(XT 4b. SUMMARY AREA Commands and the `m' command for additional information
|
|
on that special 4-way toggle.
|
|
|
|
This table may help in interpreting the scaled values displayed:
|
|
.nf
|
|
KiB = kibibyte = 1024 bytes
|
|
MiB = mebibyte = 1024 KiB = 1,048,576 bytes
|
|
GiB = gibibyte = 1024 MiB = 1,073,741,824 bytes
|
|
TiB = tebibyte = 1024 GiB = 1,099,511,627,776 bytes
|
|
PiB = pebibyte = 1024 TiB = 1,125,899,906,842,624 bytes
|
|
EiB = exbibyte = 1024 PiB = 1,152,921,504,606,846,976 bytes
|
|
.fi
|
|
|
|
.\" ----------------------------------------------------------------------
|
|
.SH 3. FIELDS / Columns
|
|
.\" ----------------------------------------------------------------------
|
|
.\" ......................................................................
|
|
.SS 3a. DESCRIPTIONS of Fields
|
|
.\" ----------------------------------------------------------------------
|
|
Listed below are \*(We's available process fields (columns).
|
|
They are shown in strict ascii alphabetical order.
|
|
You may customize their position and whether or not they are displayable
|
|
with the `f' (Fields Management) \*(CI.
|
|
|
|
Any field is selectable as the sort field, and you control whether they
|
|
are sorted high-to-low or low-to-high.
|
|
For additional information on sort provisions
|
|
\*(Xt 4c. TASK AREA Commands, SORTING.
|
|
|
|
The fields related to \*(MP or \*(MV reference `(KiB)' which is the
|
|
unsuffixed display mode.
|
|
Such fields may, however, be scaled from KiB through PiB.
|
|
That scaling is influenced via the `e' \*(CI or established for startup
|
|
through a build option.
|
|
|
|
.TP 4
|
|
\fB%CPU \*(Em \*(PU Usage \fR
|
|
The task's share of the elapsed \*(PU time since the last screen update,
|
|
expressed as a percentage of total \*(PU time.
|
|
|
|
In a true SMP environment, if a process is multi-threaded and \*(We is
|
|
\fInot\fR operating in Threads mode, amounts greater than 100% may be
|
|
reported.
|
|
You toggle Threads mode with the `H' \*(CI.
|
|
|
|
Also for multi-processor environments, if Irix mode is \*F, \*(We
|
|
will operate in Solaris mode where a task's \*(Pu usage will be
|
|
divided by the total number of \*(PUs.
|
|
You toggle Irix/Solaris modes with the `I' \*(CI.
|
|
|
|
\*(NT When running in forest view mode (`V') with children
|
|
collapsed (`v'), this field will also include the \*(PU time of
|
|
those unseen children.
|
|
\*(XT 4c. TASK AREA Commands, CONTENT for more information regarding
|
|
the `V' and `v' toggles.
|
|
|
|
.TP 4
|
|
\fB%CUU \*(Em \*(PU Utilization \fR
|
|
A task's total \*(PU usage divided by its elapsed running time,
|
|
expressed as a percentage.
|
|
|
|
If a process currently displays high \*(PU usage, this field can help
|
|
determine if such behavior is normal.
|
|
Conversely, if a process has low \*(PU usage currently, %CUU may reflect
|
|
historically higher demands over its lifetime.
|
|
|
|
.TP 4
|
|
\fB%MEM \*(Em Memory Usage (RES) \fR
|
|
A task's currently resident share of available \*(MP.
|
|
|
|
\*(XX.
|
|
|
|
.TP 4
|
|
\fBAGID \*(Em Autogroup Identifier \fR
|
|
The autogroup identifier associated with a process.
|
|
This feature operates in conjunction with the CFS scheduler
|
|
to improve interactive desktop performance.
|
|
|
|
When /proc/sys/kernel/sched_autogroup_enabled is set, a new
|
|
autogroup is created with each new session (\*(Xa SID).
|
|
All subsequently forked processes in that session inherit membership in
|
|
this autogroup.
|
|
The kernel then attempts to equalize distribution of CPU cycles
|
|
across such groups.
|
|
Thus, an autogroup with many \*(PU intensive processes (e.g make -j)
|
|
will not dominate an autogroup with only one or two processes.
|
|
|
|
When -1 is displayed it means this information is not available.
|
|
|
|
.TP 4
|
|
\fBAGNI \*(Em Autogroup Nice Value \fR
|
|
The autogroup nice value which affects scheduling of all processes
|
|
in that group.
|
|
A negative nice value means higher priority, whereas a positive nice
|
|
value means lower priority.
|
|
|
|
.TP 4
|
|
\fBCGNAME \*(Em Control Group Name \fR
|
|
The name of the control group to which a process belongs,
|
|
or `\-' if not applicable for that process.
|
|
|
|
This will typically be the last entry in the full list of control
|
|
groups as shown under the next heading (CGROUPS).
|
|
And as is true there, this field is also variable width.
|
|
|
|
.TP 4
|
|
\fBCGROUPS \*(Em Control Groups \fR
|
|
The names of the control group(s) to which a process belongs,
|
|
or `\-' if not applicable for that process.
|
|
|
|
Control Groups provide for allocating resources (cpu, memory, network
|
|
bandwidth, etc.) among installation-defined groups of processes.
|
|
They enable fine-grained control over allocating, denying, prioritizing,
|
|
managing and monitoring those resources.
|
|
|
|
Many different hierarchies of cgroups can exist simultaneously on a system
|
|
and each hierarchy is attached to one or more subsystems.
|
|
A subsystem represents a single resource.
|
|
|
|
\*(NT The CGROUPS field, unlike most columns, is not fixed-width.
|
|
When displayed, it plus any other variable width columns will be allocated
|
|
all remaining screen width (up to the maximum \*(WX characters).
|
|
Even so, such variable width fields could still suffer truncation.
|
|
\*(XT 5c. SCROLLING a Window for additional information on accessing
|
|
any truncated data.
|
|
|
|
.TP 4
|
|
\fBCODE \*(Em Code Size (KiB) \fR
|
|
The amount of \*(MP currently devoted to executable code, also known
|
|
as the Text Resident Set size or TRS.
|
|
|
|
\*(XX.
|
|
|
|
.TP 4
|
|
\fBCOMMAND \*(Em Command\fB Name\fR or Command\fB Line \fR
|
|
Display the command line used to start a task or the name of the associated
|
|
program.
|
|
You toggle between command\fI line\fR and\fI name\fR with `c', which is both
|
|
a \*(CO and an \*(CI.
|
|
|
|
When you've chosen to display command lines, processes without a command
|
|
line (like kernel threads) will be shown with only the program name in
|
|
brackets, as in this example:
|
|
\fR[kthreadd]
|
|
|
|
This field may also be impacted by the forest view display mode.
|
|
\*(XC `V' \*(CI for additional information regarding that mode.
|
|
|
|
\*(NT The COMMAND field, unlike most columns, is not fixed-width.
|
|
When displayed, it plus any other variable width columns will be allocated
|
|
all remaining screen width (up to the maximum \*(WX characters).
|
|
Even so, such variable width fields could still suffer truncation.
|
|
This is especially true for this field when command lines are being
|
|
displayed (the `c' \*(CI.)
|
|
\*(XT 5c. SCROLLING a Window for additional information on accessing
|
|
any truncated data.
|
|
|
|
.TP 4
|
|
\fBDATA \*(Em Data + Stack Size (KiB) \fR
|
|
The amount of private memory \fIreserved\fR by a process.
|
|
It is also known as the Data Resident Set or DRS.
|
|
Such memory may not yet be mapped to \*(MP (RES) but will always be
|
|
included in the \*(MV (VIRT) amount.
|
|
|
|
\*(XX.
|
|
|
|
.TP 4
|
|
\fBELAPSED \*(Em Elapsed Running Time\fR
|
|
The length of time since a process was started.
|
|
Thus, the most recently started task will display the smallest time interval.
|
|
|
|
The value will be expressed as 'HH,MM' (hours,minutes) but is subject to
|
|
additional scaling if the interval becomes too great to fit column width.
|
|
At that point it will be scaled to 'DD+HH' (days+hours) and possibly
|
|
beyond.
|
|
|
|
.TP 4
|
|
\fBENVIRON \*(Em Environment variables \fR
|
|
Display all of the environment variables, if any, as seen by the
|
|
respective processes.
|
|
These variables will be displayed in their raw native order, not the
|
|
sorted order you are accustomed to seeing with an unqualified `set'.
|
|
|
|
\*(NT The ENVIRON field, unlike most columns, is not fixed-width.
|
|
When displayed, it plus any other variable width columns will be allocated
|
|
all remaining screen width (up to the maximum \*(WX characters).
|
|
Even so, such variable width fields could still suffer truncation.
|
|
This is especially true for this field.
|
|
\*(XT 5c. SCROLLING a Window for additional information on accessing
|
|
any truncated data.
|
|
|
|
.TP 4
|
|
\fBEXE \*(Em Executable Path \fR
|
|
Where available, this is the full path to the executable,
|
|
including the program name.
|
|
|
|
\*(NT The EXE field, unlike most columns, is not fixed-width.
|
|
When displayed, it plus any other variable width columns will be allocated
|
|
all remaining screen width (up to the maximum \*(WX characters).
|
|
|
|
.TP 4
|
|
\fBFlags \*(Em Task Flags \fR
|
|
This column represents the task's current scheduling flags which are
|
|
expressed in hexadecimal notation and with zeros suppressed.
|
|
These flags are officially documented in <linux/sched.h>.
|
|
|
|
.TP 4
|
|
\fBGID \*(Em Group Id \fR
|
|
The\fI effective\fR group ID.
|
|
|
|
.TP 4
|
|
\fBGROUP \*(Em Group Name \fR
|
|
The\fI effective\fR group name.
|
|
|
|
.TP 4
|
|
\fBLOGID \*(Em Login User Id \fR
|
|
The user ID used at\fI login\fR.
|
|
When -1 is displayed it means this information is not available.
|
|
|
|
.TP 4
|
|
\fBLXC \*(Em Lxc Container Name \fR
|
|
The name of the lxc container within which a task is running.
|
|
If a process is not running inside a container, a dash (`\-') will be shown.
|
|
|
|
.TP 4
|
|
\fBNI \*(Em Nice Value \fR
|
|
The nice value of the task.
|
|
A negative nice value means higher priority, whereas a positive nice value
|
|
means lower priority.
|
|
Zero in this field simply means priority will not be adjusted in determining
|
|
a task's dispatch-ability.
|
|
|
|
\*(NT This value only affects scheduling priority relative to other processes
|
|
in the same autogroup.
|
|
\*(XC `AGID' and `AGNI' fields for additional information on autogroups.
|
|
|
|
.TP 4
|
|
\fBNU \*(Em Last known NUMA node \fR
|
|
A number representing the NUMA node associated with the last used processor (`P').
|
|
When -1 is displayed it means that NUMA information is not available.
|
|
|
|
\*(XC `'2' and `3' \*(CIs for additional NUMA provisions affecting the \*(SA.
|
|
|
|
.TP 4
|
|
\fBOOMa \*(Em Out of Memory Adjustment Factor \fR
|
|
The value, ranging from -1000 to +1000, added to the current out of memory
|
|
score (OOMs) which is then used to determine which task to kill when memory
|
|
is exhausted.
|
|
|
|
.TP 4
|
|
\fBOOMs \*(Em Out of Memory Score \fR
|
|
The value, ranging from 0 to +1000, used to select task(s) to kill when memory
|
|
is exhausted.
|
|
Zero translates to `never kill' whereas 1000 means `always kill'.
|
|
|
|
.TP 4
|
|
\fBP \*(Em Last used \*(PU (SMP) \fR
|
|
A number representing the last used processor.
|
|
In a true SMP environment this will likely change frequently since the kernel
|
|
intentionally uses weak affinity.
|
|
Also, the very act of running \*(We may break this weak affinity and cause more
|
|
processes to change \*(PUs more often (because of the extra demand for
|
|
\*(Pu time).
|
|
|
|
.TP 4
|
|
\fBPGRP \*(Em Process Group Id \fR
|
|
Every process is member of a unique process group which is used for
|
|
distribution of signals and by terminals to arbitrate requests for their
|
|
input and output.
|
|
When a process is created (forked), it becomes a member of the process
|
|
group of its parent.
|
|
By convention, this value equals the process ID (\*(Xa PID) of the first
|
|
member of a process group, called the process group leader.
|
|
|
|
.TP 4
|
|
\fBPID \*(Em Process Id \fR
|
|
The task's unique process ID, which periodically wraps, though never
|
|
restarting at zero.
|
|
In kernel terms, it is a dispatchable entity defined by a task_struct.
|
|
|
|
This value may also be used as: a process group ID (\*(Xa PGRP);
|
|
a session ID for the session leader (\*(Xa SID);
|
|
a thread group ID for the thread group leader (\*(Xa TGID);
|
|
and a TTY process group ID for the process group leader (\*(Xa TPGID).
|
|
|
|
.TP 4
|
|
\fBPPID \*(Em Parent Process Id \fR
|
|
The process ID (pid) of a task's parent.
|
|
|
|
.TP 4
|
|
\fBPR \*(Em Priority \fR
|
|
The scheduling priority of the task.
|
|
If you see `rt' in this field, it means the task is running
|
|
under real time scheduling priority.
|
|
|
|
Under linux, real time priority is somewhat misleading since traditionally
|
|
the operating itself was not preemptible.
|
|
And while the 2.6 kernel can be made mostly preemptible, it is not always so.
|
|
|
|
.TP 4
|
|
\fBPSS \*(Em Proportional Resident Memory, smaps (KiB) \fR
|
|
The proportion of this task's share of `RSS' where each page is divided by
|
|
the number of processes sharing it.
|
|
It is also the sum of the `PSan', `PSfd' and `PSsh' fields.
|
|
|
|
For example, if a process has 1000 resident pages alone and 1000 resident
|
|
pages shared with another process, its `PSS' would be 1500 (times page size).
|
|
|
|
\*(ZX.
|
|
|
|
.PP
|
|
\fBPSan \*(Em Proportional Anonymous Memory, smaps (KiB) \fR
|
|
.br
|
|
\fBPSfd \*(Em Proportional File Memory, smaps (KiB) \fR
|
|
.br
|
|
\fBPSsh \*(Em Proportional Shmem Memory, smaps (KiB) \fR
|
|
.RS 4
|
|
As was true for `PSS' above (total proportional resident memory),
|
|
these fields represent the proportion of this task's share of each type
|
|
of memory divided by the number of processes sharing it.
|
|
|
|
\*(ZX.
|
|
.RE
|
|
|
|
.TP 4
|
|
\fBRES \*(Em Resident Memory Size (KiB) \fR
|
|
A subset of the virtual address space (VIRT) representing the non-swapped
|
|
\*(MP a task is currently using.
|
|
It is also the sum of the `RSan', `RSfd' and `RSsh' fields.
|
|
|
|
It can include private anonymous pages, private pages mapped to files
|
|
(including program images and shared libraries) plus shared anonymous pages.
|
|
All such memory is backed by the \*(MS represented separately under SWAP.
|
|
|
|
Lastly, this field may also include shared file-backed pages which, when
|
|
modified, act as a dedicated \*(MS and thus will never impact SWAP.
|
|
|
|
\*(XX.
|
|
|
|
.TP 4
|
|
\fBRSS \*(Em Resident Memory, smaps (KiB) \fR
|
|
Another, more precise view of process non-swapped \*(MP.
|
|
It is obtained from the `smaps_rollup' file and is
|
|
generally slightly larger than that shown for `RES'.
|
|
|
|
\*(ZX.
|
|
|
|
.TP 4
|
|
\fBRSan \*(Em Resident Anonymous Memory Size (KiB) \fR
|
|
A subset of resident memory (RES) representing private pages not
|
|
mapped to a file.
|
|
|
|
.TP 4
|
|
\fBRSfd \*(Em Resident File-Backed Memory Size (KiB) \fR
|
|
A subset of resident memory (RES) representing the implicitly shared
|
|
pages supporting program images and shared libraries.
|
|
It also includes explicit file mappings, both private and shared.
|
|
|
|
.TP 4
|
|
\fBRSlk \*(Em Resident Locked Memory Size (KiB) \fR
|
|
A subset of resident memory (RES) which cannot be swapped out.
|
|
|
|
.TP 4
|
|
\fBRSsh \*(Em Resident Shared Memory Size (KiB) \fR
|
|
A subset of resident memory (RES) representing the explicitly shared
|
|
anonymous shm*/mmap pages.
|
|
|
|
.TP 4
|
|
\fBRUID \*(Em Real User Id \fR
|
|
The\fI real\fR user ID.
|
|
|
|
.TP 4
|
|
\fBRUSER \*(Em Real User Name \fR
|
|
The\fI real\fR user name.
|
|
|
|
.TP 4
|
|
\fBS \*(Em Process Status \fR
|
|
The status of the task which can be one of:
|
|
\fBD\fR = uninterruptible sleep
|
|
\fBI\fR = idle
|
|
\fBR\fR = running
|
|
\fBS\fR = sleeping
|
|
\fBT\fR = stopped by job control signal
|
|
\fBt\fR = stopped by debugger during trace
|
|
\fBZ\fR = zombie
|
|
|
|
Tasks shown as running should be more properly thought of as ready to run
|
|
\*(Em their task_struct is simply represented on the Linux run-queue.
|
|
Even without a true SMP machine, you may see numerous tasks in this state
|
|
depending on \*(We's delay interval and nice value.
|
|
|
|
.TP 4
|
|
\fBSHR \*(Em Shared Memory Size (KiB) \fR
|
|
A subset of resident memory (RES) that may be used by other processes.
|
|
It will include shared anonymous pages and shared file-backed pages.
|
|
It also includes private pages mapped to files representing
|
|
program images and shared libraries.
|
|
|
|
\*(XX.
|
|
|
|
.TP 4
|
|
\fBSID \*(Em Session Id \fR
|
|
A session is a collection of process groups (\*(Xa PGRP),
|
|
usually established by the login shell.
|
|
A newly forked process joins the session of its creator.
|
|
By convention, this value equals the process ID (\*(Xa PID) of the first
|
|
member of the session, called the session leader, which is usually the
|
|
login shell.
|
|
|
|
.TP 4
|
|
\fBSTARTED \*(Em Start Time Interval\fR
|
|
The length of time since system boot when a process started.
|
|
Thus, the most recently started task will display the largest time interval.
|
|
|
|
The value will be expressed as 'MM:SS' (minutes:seconds).
|
|
But if the interval is too great to fit column width it will be scaled
|
|
as 'HH,MM' (hours,minutes) and possibly beyond.
|
|
|
|
.TP 4
|
|
\fBSUID \*(Em Saved User Id \fR
|
|
The\fI saved\fR user ID.
|
|
|
|
.TP 4
|
|
\fBSUPGIDS \*(Em Supplementary Group IDs \fR
|
|
The IDs of any supplementary group(s) established at login or
|
|
inherited from a task's parent.
|
|
They are displayed in a comma delimited list.
|
|
|
|
\*(NT The SUPGIDS field, unlike most columns, is not fixed-width.
|
|
When displayed, it plus any other variable width columns will be allocated
|
|
all remaining screen width (up to the maximum \*(WX characters).
|
|
|
|
.TP 4
|
|
\fBSUPGRPS \*(Em Supplementary Group Names \fR
|
|
The names of any supplementary group(s) established at login or
|
|
inherited from a task's parent.
|
|
They are displayed in a comma delimited list.
|
|
|
|
\*(NT The SUPGRPS field, unlike most columns, is not fixed-width.
|
|
When displayed, it plus any other variable width columns will be allocated
|
|
all remaining screen width (up to the maximum \*(WX characters).
|
|
|
|
.TP 4
|
|
\fBSUSER \*(Em Saved User Name \fR
|
|
The\fI saved\fR user name.
|
|
|
|
.TP 4
|
|
\fBSWAP \*(Em Swapped Size (KiB) \fR
|
|
The formerly resident portion of a task's address space written
|
|
to the \*(MS when \*(MP becomes over committed.
|
|
|
|
\*(XX.
|
|
|
|
.TP 4
|
|
\fBTGID \*(Em Thread Group Id \fR
|
|
The ID of the thread group to which a task belongs.
|
|
It is the PID of the thread group leader.
|
|
In kernel terms, it represents those tasks that share an mm_struct.
|
|
|
|
.TP 4
|
|
\fBTIME \*(Em \*(PU Time \fR
|
|
Total \*(PU time the task has used since it started.
|
|
When Cumulative mode is \*O, each process is listed with the \*(Pu
|
|
time that it and its dead children have used.
|
|
You toggle Cumulative mode with `S', which is both a \*(CO and an \*(CI.
|
|
\*(XC `S' \*(CI for additional information regarding this mode.
|
|
|
|
.TP 4
|
|
\fBTIME+ \*(Em \*(PU Time, hundredths \fR
|
|
The same as TIME, but reflecting more granularity through hundredths
|
|
of a second.
|
|
|
|
.TP 4
|
|
\fBTPGID \*(Em Tty Process Group Id \fR
|
|
The process group ID of the foreground process for the connected tty,
|
|
or \-1 if a process is not connected to a terminal.
|
|
By convention, this value equals the process ID (\*(Xa PID) of the
|
|
process group leader (\*(Xa PGRP).
|
|
|
|
.TP 4
|
|
\fBTTY \*(Em Controlling Tty \fR
|
|
The name of the controlling terminal.
|
|
This is usually the device (serial port, pty, etc.) from which the
|
|
process was started, and which it uses for input or output.
|
|
However, a task need not be associated with a terminal, in which case
|
|
you'll see `?' displayed.
|
|
|
|
.TP 4
|
|
\fBUID \*(Em User Id \fR
|
|
The\fI effective\fR user ID of the task's owner.
|
|
|
|
.TP 4
|
|
\fBUSED \*(Em Memory in Use (KiB) \fR
|
|
This field represents the non-swapped \*(MP a task is using (RES) plus
|
|
the swapped out portion of its address space (SWAP).
|
|
|
|
\*(XX.
|
|
|
|
.TP 4
|
|
\fBUSER \*(Em User Name \fR
|
|
The\fI effective\fR user name of the task's owner.
|
|
|
|
.TP 4
|
|
\fBUSS \*(Em Unique Set Size \fR
|
|
The non-swapped portion of \*(MP (`RSS') not shared with
|
|
any other process.
|
|
It is derived from the `smaps_rollup' file.
|
|
|
|
\*(ZX.
|
|
|
|
.TP 4
|
|
\fBVIRT \*(Em Virtual Memory Size (KiB) \fR
|
|
The total amount of \*(MV used by the task.
|
|
It includes all code, data and shared libraries plus pages that have been
|
|
swapped out and pages that have been mapped but not used.
|
|
|
|
\*(XX.
|
|
|
|
.TP 4
|
|
\fBWCHAN \*(Em Sleeping in Function \fR
|
|
This field will show the name of the kernel function in which the task
|
|
is currently sleeping.
|
|
Running tasks will display a dash (`\-') in this column.
|
|
|
|
.TP 4
|
|
\fBioR \*(Em I/O Bytes Read \fR
|
|
The number of bytes a process caused to be fetched from the storage layer.
|
|
|
|
Root privileges are required to display `io' data for other users.
|
|
|
|
.TP 4
|
|
\fBioRop \*(Em I/O Read Operations \fR
|
|
The number of read I/O operations (syscalls) for a process.
|
|
Such calls might not result in actual physical disk I/O.
|
|
|
|
.TP 4
|
|
\fBioW \*(Em I/O Bytes Written \fR
|
|
The number of bytes a process caused to be sent to the storage layer.
|
|
|
|
.TP 4
|
|
\fBioWop \*(Em I/O Write Operations \fR
|
|
The number of write I/O operations (syscalls) for a process.
|
|
Such calls might not result in actual physical disk I/O.
|
|
|
|
.TP 4
|
|
\fBnDRT \*(Em Dirty Pages Count \fR
|
|
The number of pages that have been modified since they were last
|
|
written to \*(AS.
|
|
Dirty pages must be written to \*(AS before the corresponding physical
|
|
memory location can be used for some other virtual page.
|
|
|
|
This field was deprecated with linux 2.6 and is always zero.
|
|
|
|
.TP 4
|
|
\fBnMaj \*(Em Major Page Fault Count \fR
|
|
The number of\fB major\fR page faults that have occurred for a task.
|
|
A page fault occurs when a process attempts to read from or write to a
|
|
virtual page that is not currently present in its address space.
|
|
A major page fault is when \*(AS access is involved in making that
|
|
page available.
|
|
|
|
.TP 4
|
|
\fBnMin \*(Em Minor Page Fault count \fR
|
|
The number of\fB minor\fR page faults that have occurred for a task.
|
|
A page fault occurs when a process attempts to read from or write to a
|
|
virtual page that is not currently present in its address space.
|
|
A minor page fault does not involve \*(AS access in making that
|
|
page available.
|
|
|
|
.TP 4
|
|
\fBnTH \*(Em Number of Threads \fR
|
|
The number of threads associated with a process.
|
|
|
|
.TP 4
|
|
\fBnsIPC \*(Em IPC namespace \fR
|
|
The Inode of the namespace used to isolate interprocess communication (IPC)
|
|
resources such as System V IPC objects and POSIX message queues.
|
|
|
|
.TP 4
|
|
\fBnsMNT \*(Em MNT namespace \fR
|
|
The Inode of the namespace used to isolate filesystem mount points thus
|
|
offering different views of the filesystem hierarchy.
|
|
|
|
.TP 4
|
|
\fBnsNET \*(Em NET namespace \fR
|
|
The Inode of the namespace used to isolate resources such as network devices,
|
|
IP addresses, IP routing, port numbers, etc.
|
|
|
|
.TP 4
|
|
\fBnsPID \*(Em PID namespace \fR
|
|
The Inode of the namespace used to isolate process ID numbers
|
|
meaning they need not remain unique.
|
|
Thus, each such namespace could have its own `init/systemd' (PID #1) to
|
|
manage various initialization tasks and reap orphaned child processes.
|
|
|
|
.TP 4
|
|
\fBnsUSER \*(Em USER namespace \fR
|
|
The Inode of the namespace used to isolate the user and group ID numbers.
|
|
Thus, a process could have a normal unprivileged user ID outside a user
|
|
namespace while having a user ID of 0, with full root privileges, inside
|
|
that namespace.
|
|
|
|
.TP 4
|
|
\fBnsUTS \*(Em UTS namespace \fR
|
|
The Inode of the namespace used to isolate hostname and NIS domain name.
|
|
UTS simply means "UNIX Time-sharing System".
|
|
|
|
.TP 4
|
|
\fBvMj \*(Em Major Page Fault Count Delta\fR
|
|
The number of\fB major\fR page faults that have occurred since the
|
|
last update (see nMaj).
|
|
|
|
.TP 4
|
|
\fBvMn \*(Em Minor Page Fault Count Delta\fR
|
|
The number of\fB minor\fR page faults that have occurred since the
|
|
last update (see nMin).
|
|
|
|
.\" ......................................................................
|
|
.SS 3b. MANAGING Fields
|
|
.\" ----------------------------------------------------------------------
|
|
After pressing the \*(CI `f' (Fields Management) you will be presented
|
|
with a screen showing: 1) the \*(CW name; 2) the designated sort field;
|
|
3) all fields in their current order along with descriptions.
|
|
Entries marked with an asterisk are the currently displayed fields,
|
|
screen width permitting.
|
|
|
|
.RS +4
|
|
.IP \(bu 3
|
|
As the on screen instructions indicate, you navigate among the fields with
|
|
the\fB Up\fR and\fB Down\fR \*(KAs.
|
|
The PgUp, PgDn, Home and End keys can also be used to quickly reach the
|
|
first or last available field.
|
|
|
|
.IP \(bu 3
|
|
The\fB Right\fR \*(KA selects a field for repositioning and
|
|
the\fB Left\fR \*(KA or the <\fBEnter\fR> key commits that field's
|
|
placement.
|
|
|
|
.IP \(bu 3
|
|
The `\fBd\fR' key or the <\fBSpace\fR> bar toggles a field's display
|
|
status, and thus the presence or absence of the asterisk.
|
|
|
|
.IP \(bu 3
|
|
The `\fBs\fR' key designates a field as the sort field.
|
|
\*(XT 4c. TASK AREA Commands, SORTING for additional information regarding
|
|
your selection of a sort field.
|
|
|
|
.IP \(bu 3
|
|
The `\fBa\fR' and `\fBw\fR' keys can be used to cycle through all available
|
|
windows and the `\fBq\fR' or <\fBEsc\fR> keys exit Fields Management.
|
|
.RS -4
|
|
|
|
.PP
|
|
The Fields Management screen can also be used to change the \*(CG in
|
|
either \*(FM or \*(AM.
|
|
Whatever was targeted when `q' or <Esc> was pressed will be made current
|
|
as you return to the \*(We display.
|
|
\*(XT 5. ALTERNATE\-DISPLAY Provisions and the `g' \*(CI for insight
|
|
into \*(CWs and \*(FGs.
|
|
|
|
.PP
|
|
\*(NT Any window that has been scrolled\fI horizontally\fR will be reset if any
|
|
field changes are made via the Fields Management screen.
|
|
Any\fI vertical\fR scrolled position, however, will not be affected.
|
|
\*(XT 5c. SCROLLING a Window for additional information regarding vertical
|
|
and horizontal scrolling.
|
|
|
|
.\" ----------------------------------------------------------------------
|
|
.SH 4. INTERACTIVE Commands
|
|
.\" ----------------------------------------------------------------------
|
|
Listed below is a brief index of commands within categories.
|
|
Some commands appear more than once \*(Em their meaning or scope may vary
|
|
depending on the context in which they are issued.
|
|
|
|
.nf
|
|
4a.\fI Global-Commands \fR
|
|
<Ent/Sp> ?, =, 0,
|
|
A, B, d, E, e, g, H, h, I, k, q, r, s, W, X, Y, Z
|
|
4b.\fI Summary-Area-Commands \fR
|
|
C, l, t, m, 1, 2, 3, 4, !
|
|
4c.\fI Task-Area-Commands \fR
|
|
Appearance: b, J, j, x, y, z
|
|
Content: c, F, f, O, o, S, U, u, V, v, ^E
|
|
Size: #, i, n
|
|
Sorting: <, >, f, R
|
|
4d.\fI Color-Mapping \fR
|
|
<Ret>, a, B, b, H, M, q, S, T, w, z, 0 \- 7
|
|
5b.\fI Commands-for-Windows \fR
|
|
\-, _, =, +, A, a, G, g, w
|
|
5c.\fI Scrolling-a-Window \fR
|
|
C, Up, Dn, Left, Right, PgUp, PgDn, Home, End
|
|
5d.\fI Searching-in-a-Window \fR
|
|
L, &
|
|
5e.\fI Filtering-in-a-Window
|
|
O, o, ^O, =, +
|
|
.fi
|
|
|
|
.\" ......................................................................
|
|
.SS 4a. GLOBAL Commands
|
|
.\" ----------------------------------------------------------------------
|
|
The global \*(CIs are\fB always\fR available\fR in both \*(FM and \*(AM.
|
|
However, some of these \*(CIs are\fB not available\fR when running
|
|
in Secure mode.
|
|
|
|
If you wish to know in advance whether or not your \*(We has been
|
|
secured, simply ask for help and view the system summary on the second
|
|
line.
|
|
|
|
.TP 7
|
|
\ \ <\fBEnter\fR> or <\fBSpace\fR>\ \ :\fIRefresh-Display \fR
|
|
These commands awaken \*(We and following receipt of any input
|
|
the entire display will be repainted.
|
|
They also force an update of any hotplugged \*(Pu or \*(MP changes.
|
|
|
|
Use either of these keys if you have a large delay interval and wish
|
|
to see current status,
|
|
|
|
.TP 7
|
|
\ \ \ \fB?\fR | \fBh\fR\ \ :\fIHelp \fR
|
|
There are two help levels available.
|
|
The first will provide a reminder of all the basic \*(CIs.
|
|
If \*(We is\fI secured\fR, that screen will be abbreviated.
|
|
|
|
Typing `h' or `?' on that help screen will take you to help for
|
|
those \*(CIs applicable to \*(AM.
|
|
|
|
.TP 7
|
|
\ \ \ \fB=\fR\ \ :\fIExit-Display-Limits \fR
|
|
Removes restrictions on what is shown.
|
|
This command will reverse any `i' (idle tasks), `n' (max tasks),
|
|
`v' (hide children) and `F' focus commands that might be active.
|
|
It also provides for an exit from PID monitoring, User filtering,
|
|
Other filtering, Locate processing and Combine Cpus mode.
|
|
|
|
Additionally, if the window has been scrolled it will be reset with
|
|
this command.
|
|
|
|
.TP 7
|
|
\ \ \ \fB0\fR\ \ :\fIZero-Suppress\fR toggle \fR
|
|
This command determines whether zeros are shown or suppressed for many
|
|
of the fields in a \*(TW.
|
|
Fields like UID, GID, NI, PR or P are not affected by this toggle.
|
|
|
|
.TP 7
|
|
\ \ \ \fBA\fR\ \ :\fIAlternate-Display-Mode\fR toggle \fR
|
|
This command will switch between \*(FM and \*(AM.
|
|
\*(XT 5. ALTERNATE\-DISPLAY Provisions and the `g' \*(CI for insight
|
|
into \*(CWs and \*(FGs.
|
|
|
|
.TP 7
|
|
\ \ \ \fBB\fR\ \ :\fIBold-Disable/Enable\fR toggle \fR
|
|
This command will influence use of the bold terminfo capability and
|
|
alters\fB both\fR the \*(SA and \*(TA for the \*(CW.
|
|
While it is intended primarily for use with dumb terminals, it can be
|
|
applied anytime.
|
|
|
|
\*(NT When this toggle is \*O and \*(We is operating in monochrome mode,
|
|
the\fB entire display\fR will appear as normal text.
|
|
Thus, unless the `x' and/or `y' toggles are using reverse for emphasis,
|
|
there will be no visual confirmation that they are even on.
|
|
|
|
.TP 7
|
|
*\ \ \fBd\fR | \fBs\fR\ \ :\fIChange-Delay-Time-interval \fR
|
|
You will be prompted to enter the delay time, in seconds, between
|
|
display updates.
|
|
|
|
Fractional seconds are honored, but a negative number is not allowed.
|
|
Entering 0 causes (nearly) continuous updates, with an unsatisfactory
|
|
display as the system and tty driver try to keep up with \*(We's demands.
|
|
The delay value is inversely proportional to system loading,
|
|
so set it with care.
|
|
|
|
If at any time you wish to know the current delay time, simply ask for
|
|
help and view the system summary on the second line.
|
|
|
|
.TP 7
|
|
\ \ \ \fBE\fR\ \ :\fIEnforce-Summary-Memory-Scale\fR in Summary Area
|
|
With this command you can cycle through the available \*(SA memory scaling
|
|
which ranges from KiB (kibibytes or 1,024 bytes) through EiB (exbibytes or
|
|
1,152,921,504,606,846,976 bytes).
|
|
|
|
If you see a `+' between a displayed number and the following label, it
|
|
means that \*(We was forced to truncate some portion of that number.
|
|
By raising the scaling factor, such truncation can be avoided.
|
|
|
|
.TP 7
|
|
\ \ \ \fBe\fR\ \ :\fIEnforce-Task-Memory-Scale\fR in Task Area
|
|
With this command you can cycle through the available \*(TA memory scaling
|
|
which ranges from KiB (kibibytes or 1,024 bytes) through PiB (pebibytes or
|
|
1,125,899,906,842,624 bytes).
|
|
|
|
While \*(We will try to honor the selected target range, additional
|
|
scaling might still be necessary in order to accommodate current values.
|
|
If you wish to see a more homogeneous result in the memory columns,
|
|
raising the scaling range will usually accomplish that goal.
|
|
Raising it too high, however, is likely to produce an all zero result
|
|
which cannot be suppressed with the `0' \*(CI.
|
|
|
|
.TP 7
|
|
\ \ \ \fBg\fR\ \ :\fIChoose-Another-Window/Field-Group \fR
|
|
You will be prompted to enter a number between 1 and 4 designating the
|
|
\*(FG which should be made the \*(CW.
|
|
You will soon grow comfortable with these 4 windows, especially after
|
|
experimenting with \*(AM.
|
|
|
|
.TP 7
|
|
\ \ \ \fBH\fR\ \ :\fIThreads-mode\fR toggle \fR
|
|
When this toggle is \*O, individual threads will be displayed for all
|
|
processes in all visible \*(TWs.
|
|
Otherwise, \*(We displays a summation of all threads in each process.
|
|
|
|
.TP 7
|
|
\ \ \ \fBI\fR\ \ :\fIIrix/Solaris-Mode\fR toggle \fR
|
|
When operating in Solaris mode (`I' toggled \*F), a task's \*(Pu usage
|
|
will be divided by the total number of \*(PUs.
|
|
After issuing this command, you'll be told the new state of this toggle.
|
|
|
|
.TP 7
|
|
*\ \ \fBk\fR\ \ :\fIKill-a-task \fR
|
|
You will be prompted for a PID and then the signal to send.
|
|
|
|
Entering no PID or a negative number will be interpreted as
|
|
the default shown in the prompt (the first task displayed).
|
|
A PID value of zero means the \*(We program itself.
|
|
|
|
The default signal, as reflected in the prompt, is SIGTERM.
|
|
However, you can send any signal, via number or name.
|
|
|
|
If you wish to abort the kill process, do one of the following
|
|
depending on your progress:
|
|
.nf
|
|
1) at the pid prompt, type an invalid number
|
|
2) at the signal prompt, type 0 (or any invalid signal)
|
|
3) at any prompt, type <Esc>
|
|
.fi
|
|
|
|
.TP 7
|
|
\ \ \ \fBq\fR\ \ :\fIQuit \fR
|
|
|
|
.TP 7
|
|
*\ \ \fBr\fR\ \ :\fIRenice-a-Task \fR
|
|
You will be prompted for a PID and then the value to nice it to.
|
|
|
|
Entering no PID or a negative number will be interpreted as
|
|
the default shown in the prompt (the first task displayed).
|
|
A PID value of zero means the \*(We program itself.
|
|
|
|
A positive nice value will cause a process to lose priority.
|
|
Conversely, a negative nice value will cause a process to be viewed
|
|
more favorably by the kernel.
|
|
As a general rule, ordinary users can only increase the nice value
|
|
and are prevented from lowering it.
|
|
|
|
If you wish to abort the renice process, do one of the following
|
|
depending on your progress:
|
|
.nf
|
|
1) at the pid prompt, type an invalid number
|
|
2) at the nice prompt, type <Enter> with no input
|
|
3) at any prompt, type <Esc>
|
|
.fi
|
|
|
|
.TP 7
|
|
\ \ \ \fBW\fR\ \ :\fIWrite-the-Configuration-File \fR
|
|
This will save all of your options and toggles plus the current
|
|
display mode and delay time.
|
|
By issuing this command just before quitting \*(We, you will be able
|
|
restart later in exactly that same state.
|
|
|
|
.TP 7
|
|
\ \ \ \fBX\fR\ \ :\fIExtra-Fixed-Width \fR
|
|
Some fields are fixed width and not scalable.
|
|
As such, they are subject to truncation which would be indicated
|
|
by a `+' in the last position.
|
|
|
|
This \*(CI can be used to alter the widths of the following fields:
|
|
|
|
.nf
|
|
\fI field default field default field default \fR
|
|
GID 5 GROUP 8 WCHAN 10
|
|
LOGID 5 LXC 8 nsIPC 10
|
|
RUID 5 RUSER 8 nsMNT 10
|
|
SUID 5 SUSER 8 nsNET 10
|
|
UID 5 TTY 8 nsPID 10
|
|
USER 8 nsUSER 10
|
|
nsUTS 10
|
|
.fi
|
|
|
|
You will be prompted for the amount to be added to the default
|
|
widths shown above.
|
|
Entering zero forces a return to those defaults.
|
|
|
|
If you enter a negative number, \*(We will automatically increase
|
|
the column size as needed until there is no more truncated data.
|
|
You can accelerate this process by reducing the delay interval
|
|
or holding down the <Space> bar.
|
|
|
|
\*(NT Whether explicitly or automatically increased, the widths for
|
|
these fields are never decreased by \*(We.
|
|
To narrow them you must specify a smaller number or restore the defaults.
|
|
|
|
.TP 7
|
|
\ \ \ \fBY\fR\ \ :\fIInspect-Other-Output \fR
|
|
After issuing the `Y' \*(CI, you will be prompted for a target PID.
|
|
Typing a value or accepting the default results in a separate screen.
|
|
That screen can be used to view a variety of files or piped command output
|
|
while the normal \*(We iterative display is paused.
|
|
|
|
\*(NT This \*(CI is only fully realized when supporting entries have been
|
|
manually added to the end of the \*(We \*(CF.
|
|
For details on creating those entries, \*(Xt 6b. ADDING INSPECT Entries.
|
|
|
|
Most of the keys used to navigate the Inspect feature are reflected in
|
|
its header prologue.
|
|
There are, however, additional keys available once you have selected a
|
|
particular file or command.
|
|
They are familiar to anyone who has used the pager `less' and are
|
|
summarized here for future reference.
|
|
|
|
.nf
|
|
\fI key function \fR
|
|
= alternate status\-line, file or pipeline
|
|
/ find, equivalent to `L' locate
|
|
n find next, equivalent to `&' locate next
|
|
<Space> scroll down, equivalent to <PgDn>
|
|
b scroll up, equivalent to <PgUp>
|
|
g first line, equivalent to <Home>
|
|
G last line, equivalent to <End>
|
|
.fi
|
|
|
|
.TP 7
|
|
\ \ \ \fBZ\fR\ \ :\fIChange-Color-Mapping \fR
|
|
This key will take you to a separate screen where you can change the
|
|
colors for the \*(CW, or for all windows.
|
|
For details regarding this \*(CI \*(Xt 4d. COLOR Mapping.
|
|
|
|
.IP "*" 3
|
|
The commands shown with an \*(AK are not available in Secure mode,
|
|
nor will they be shown on the level-1 help screen.
|
|
|
|
.\" ......................................................................
|
|
.SS 4b. SUMMARY AREA Commands
|
|
.\" ----------------------------------------------------------------------
|
|
The \*(SA \*(CIs are\fB always available\fR in both \*(FM and \*(AM.
|
|
They affect the beginning lines of your display and will determine the
|
|
position of messages and prompts.
|
|
|
|
These commands always impact just the \*(CG.
|
|
\*(XT 5. ALTERNATE\-DISPLAY Provisions and the `g' \*(CI for insight into
|
|
\*(CWs and \*(FGs.
|
|
|
|
.TP 7
|
|
\ \ \ \fBC\fR\ \ :\fIShow-scroll-coordinates\fR toggle \fR
|
|
Toggle an informational message which is displayed whenever the message
|
|
line is not otherwise being used.
|
|
For additional information \*(Xt 5c. SCROLLING a Window.
|
|
|
|
.TP 7
|
|
\ \ \ \fBl\fR\ \ :\fILoad-Average/Uptime\fR toggle \fR
|
|
This is also the line containing the program name (possibly an alias)
|
|
when operating in \*(FM or the \*(CW name when operating in \*(AM.
|
|
|
|
.TP 7
|
|
\ \ \ \fBt\fR\ \ :\fITask/Cpu-States\fR toggle \fR
|
|
This command affects from 2 to many \*(SA lines, depending on the state
|
|
of the `1', `2' or `3' \*(CTs and whether or not \*(We is running under
|
|
true SMP.
|
|
|
|
This portion of the \*(SA is also influenced by the `H' \*(CI toggle,
|
|
as reflected in the total label which shows either Tasks or Threads.
|
|
|
|
This command serves as a 4-way toggle, cycling through these modes:
|
|
.nf
|
|
1. detailed percentages by category
|
|
2. abbreviated user/system and total % + bar graph
|
|
3. abbreviated user/system and total % + block graph
|
|
4. turn off task and cpu states display
|
|
.fi
|
|
|
|
When operating in either of the graphic modes, the display becomes much
|
|
more meaningful when individual CPUs or NUMA nodes are also displayed.
|
|
\*(XC the `1', `2' and `3' commands below for additional information.
|
|
|
|
.TP 7
|
|
\ \ \ \fBm\fR\ \ :\fIMemory/Swap-Usage\fR toggle \fR
|
|
This command affects the two \*(SA lines dealing with physical
|
|
and virtual memory.
|
|
|
|
This command serves as a 4-way toggle, cycling through these modes:
|
|
.nf
|
|
1. detailed percentages by memory type
|
|
2. abbreviated % used/total available + bar graph
|
|
3. abbreviated % used/total available + block graph
|
|
4. turn off memory display
|
|
.fi
|
|
|
|
.TP 7
|
|
\ \ \ \fB1\fR\ \ :\fISingle/Separate-Cpu-States\fR toggle \fR
|
|
This command affects how the `t' command's Cpu States portion is shown.
|
|
Although this toggle exists primarily to serve massively-parallel SMP
|
|
machines, it is not restricted to solely SMP environments.
|
|
|
|
When you see `%Cpu(s):' in the \*(SA, the `1' toggle is \*O and all
|
|
\*(Pu information is gathered in a single line.
|
|
Otherwise, each \*(Pu is displayed separately as: `%Cpu0, %Cpu1, ...'
|
|
up to available screen height.
|
|
|
|
.TP 7
|
|
\ \ \ \fB2\fR\ \ :\fINUMA-Nodes/Cpu-Summary\fR toggle \fR
|
|
This command toggles between the `1' command cpu summary display (only)
|
|
or a summary display plus the cpu usage statistics for each NUMA Node.
|
|
It is only available if a system has the requisite NUMA support.
|
|
|
|
.TP 7
|
|
\ \ \ \fB3\fR\ \ :\fIExpand-NUMA-Node \fR
|
|
You will be invited to enter a number representing a NUMA Node.
|
|
Thereafter, a node summary plus the statistics for each cpu in that
|
|
node will be shown until the `1', `2' or `4' \*(CT is pressed.
|
|
This \*(CI is only available if a system has the requisite NUMA support.
|
|
|
|
.TP 7
|
|
\ \ \ \fB4\fR\ \ :\fIDisplay-Two-Abreast \fR
|
|
This command turns the `1' toggle \*F, thus showing individual
|
|
processors, and prints \*(PU and Memory results two abreast.
|
|
It requires a terminal with a minimum width of 80 columns.
|
|
If a terminal's width is decreased below the minimum while \*(We
|
|
is running, \*(We reverts to showing \*(PU and Memory results
|
|
on separate lines.
|
|
|
|
To avoid truncation when displaying detailed statistics,
|
|
as opposed to the graphic representations, a minimum width
|
|
of 165 columns would be required when the `4' toggle is \*O.
|
|
|
|
.TP 7
|
|
\ \ \ \fB!\fR\ \ :\fICombine-Cpus-Mode \fR
|
|
This \*(CT is intended for massively parallel SMP environments where,
|
|
even with the `4' \*(CT, not all processors can be displayed.
|
|
With each press of `!' the number of additional \*(Pus combined is
|
|
doubled thus reducing the total number of \*(Pu lines displayed.
|
|
|
|
For example, with the first press of `!' one additional \*(Pu will be
|
|
combined and displayed as `0-1, 2-3, ...' instead of the normal
|
|
`%Cpu0, %Cpu1, %Cpu2, %Cpu3, ...'.
|
|
With a second `!' \*(CT two additional \*(Pus are combined and shown
|
|
as `0-2, 3-5, ...'.
|
|
Then the third '!' press, combining four additional \*(Pus, shows
|
|
as `0-4, 5-9, ...', etc.
|
|
|
|
Such progression continues until individual \*(Pus are again displayed
|
|
and impacts both the `1' and `4' toggles (one or two columns).
|
|
Use the `=' command to exit \fBCombine Cpus\fR mode.
|
|
|
|
.PP
|
|
\*(NT If the entire \*(SA has been toggled \*F for any window, you would
|
|
be left with just the\fB message line\fR.
|
|
In that way, you will have maximized available task rows but (temporarily)
|
|
sacrificed the program name in \*(FM or the \*(CW name when in \*(AM.
|
|
|
|
.\" ......................................................................
|
|
.SS 4c. TASK AREA Commands
|
|
.\" ----------------------------------------------------------------------
|
|
The \*(TA \*(CIs are\fB always\fR available in \*(FM.
|
|
|
|
The \*(TA \*(CIs are\fB never available\fR in \*(AM\fI if\fR the \*(CW's
|
|
\*(TD has been toggled \*F (\*(Xt 5. ALTERNATE\-DISPLAY Provisions).
|
|
|
|
.\" ..................................................
|
|
.PP
|
|
.B APPEARANCE\fR of \*(TW
|
|
|
|
.TP 7
|
|
\ \ \ \fBJ\fR\ \ :\fIJustify-Numeric-Columns\fR toggle \fR
|
|
Alternates between right-justified (the default) and
|
|
left-justified numeric data.
|
|
If the numeric data completely fills the available column, this
|
|
\*(CT may impact the column header only.
|
|
|
|
.TP 7
|
|
\ \ \ \fBj\fR\ \ :\fIJustify-Character-Columns\fR toggle \fR
|
|
Alternates between left-justified (the default) and
|
|
right-justified character data.
|
|
If the character data completely fills the available column, this
|
|
\*(CT may impact the column header only.
|
|
|
|
.PP
|
|
.RS +2
|
|
The following commands will also be influenced by the state of the
|
|
global `B' (bold enable) toggle.
|
|
.RS -2
|
|
|
|
.TP 7
|
|
\ \ \ \fBb\fR\ \ :\fIBold/Reverse\fR toggle \fR
|
|
This command will impact how the `x' and `y' toggles are displayed.
|
|
It may also impact the \*(SA when a bar graph has been selected for \*(Pu
|
|
states or memory usage via the `t' or `m' toggles.
|
|
|
|
.TP 7
|
|
\ \ \ \fBx\fR\ \ :\fIColumn-Highlight\fR toggle \fR
|
|
Changes highlighting for the current sort field.
|
|
If you forget which field is being sorted this command can serve as a quick
|
|
visual reminder, providing the sort field is being displayed.
|
|
The sort field might\fI not\fR be visible because:
|
|
1) there is insufficient\fI Screen Width \fR
|
|
2) the `f' \*(CI turned it \*F
|
|
|
|
\*(NT Whenever Searching and/or Other Filtering is active in a window,
|
|
column highlighting is temporarily disabled.
|
|
\*(XC notes at the end of topics 5d. SEARCHING and 5e. FILTERING for an
|
|
explanation why.
|
|
|
|
.TP 7
|
|
\ \ \ \fBy\fR\ \ :\fIRow-Highlight\fR toggle \fR
|
|
Changes highlighting for "running" tasks.
|
|
For additional insight into this task state,
|
|
\*(Xt 3a. DESCRIPTIONS of Fields, the `S' field (Process Status).
|
|
|
|
Use of this provision provides important insight into your system's health.
|
|
The only costs will be a few additional tty escape sequences.
|
|
|
|
.TP 7
|
|
\ \ \ \fBz\fR\ \ :\fIColor/Monochrome\fR toggle \fR
|
|
Switches the \*(CW between your last used color scheme and the older form
|
|
of black-on-white or white-on-black.
|
|
This command will alter\fB both\fR the \*(SA and \*(TA but does not affect
|
|
the state of the `x', `y' or `b' toggles.
|
|
|
|
.\" ..................................................
|
|
.PP
|
|
.B CONTENT\fR of \*(TW
|
|
|
|
.TP 7
|
|
\ \ \ \fBc\fR\ \ :\fICommand-Line/Program-Name\fR toggle \fR
|
|
This command will be honored whether or not the COMMAND column
|
|
is currently visible.
|
|
Later, should that field come into view, the change you applied will be seen.
|
|
|
|
.TP 7
|
|
\ \ \ \fBF\fR\ \ :\fIMaintain-Parent-Focus\fR toggle \fR
|
|
When in forest view mode, this key serves as a toggle to retain focus
|
|
on a target task, presumably one with forked children.
|
|
If forest view mode is \*F this key has no effect.
|
|
|
|
The toggle is applied to the first (topmost) process in the \*(CW.
|
|
Once established, that task is always displayed as the first (topmost)
|
|
process along with its forked children.
|
|
All other processes will be suppressed.
|
|
|
|
\*(NT keys like `i' (idle tasks), `n' (max tasks), `v' (hide children)
|
|
and User/Other filtering remain accessible and can impact what is displayed.
|
|
|
|
.TP 7
|
|
\ \ \ \fBf\fR\ \ :\fIFields-Management \fR
|
|
This key displays a separate screen where you can change which fields are
|
|
displayed, their order and also designate the sort field.
|
|
For additional information on this \*(CI
|
|
\*(Xt 3b. MANAGING Fields.
|
|
|
|
.TP 7
|
|
\ \ \ \fBO\fR | \fBo\fR\ \ :\fIOther-Filtering \fR
|
|
You will be prompted for the selection criteria which then determines
|
|
which tasks will be shown in the \*(CW.
|
|
Your criteria can be made case sensitive or case can be ignored.
|
|
And you determine if \*(We should include or exclude matching tasks.
|
|
|
|
\*(XT 5e. FILTERING in a window for details on these and additional
|
|
related \*(CIs.
|
|
|
|
.TP 7
|
|
\ \ \ \fBS\fR\ \ :\fICumulative-Time-Mode\fR toggle \fR
|
|
When Cumulative mode is \*O, each process is listed with the \*(Pu
|
|
time that it and its dead children have used.
|
|
|
|
When \*F, programs that fork into many separate tasks will appear
|
|
less demanding.
|
|
For programs like `init' or a shell this is appropriate but for others,
|
|
like compilers, perhaps not.
|
|
Experiment with two \*(TWs sharing the same sort field but with different `S'
|
|
states and see which representation you prefer.
|
|
|
|
After issuing this command, you'll be informed of the new state of this toggle.
|
|
If you wish to know in advance whether or not Cumulative mode is in
|
|
effect, simply ask for help and view the window summary on the second line.
|
|
|
|
.TP 7
|
|
\ \ \ \fBU\fR | \fBu\fR\ \ :\fIShow-Specific-User-Only \fR
|
|
You will be prompted for the\fB uid\fR or\fB name\fR of the user to display.
|
|
The \-u option matches on \fB effective\fR user whereas the \-U option
|
|
matches on\fB any\fR user (real, effective, saved, or filesystem).
|
|
|
|
Thereafter, in that \*(TW only matching users will be shown, or possibly
|
|
no processes will be shown.
|
|
Prepending an exclamation point (`!') to the user id or name instructs \*(We
|
|
to display only processes with users not matching the one provided.
|
|
|
|
Different \*(TWs can be used to filter different users.
|
|
Later, if you wish to monitor all users again in the \*(CW, re-issue this
|
|
command but just press <Enter> at the prompt.
|
|
|
|
.TP 7
|
|
\ \ \ \fBV\fR\ \ :\fIForest-View-Mode\fR toggle \fR
|
|
In this mode, processes are reordered according to their parents and
|
|
the layout of the COMMAND column resembles that of a tree.
|
|
In forest view mode it is still possible to toggle between program
|
|
name and command line (\*(Xc `c' \*(CI) or between processes and
|
|
threads (\*(Xc `H' \*(CI).
|
|
|
|
\*(NT Typing any key affecting the sort order will exit forest view
|
|
mode in the \*(CW.
|
|
\*(XT 4c. TASK AREA Commands, SORTING for information on those keys.
|
|
|
|
.TP 7
|
|
\ \ \ \fBv\fR\ \ :\fIHide/Show-Children\fR toggle \fR
|
|
When in forest view mode, this key serves as a toggle to collapse or
|
|
expand the children of a parent.
|
|
|
|
The toggle is applied against the first (topmost) process in the \*(CW.
|
|
\*(XT 5c. SCROLLING a Window for additional information regarding
|
|
vertical scrolling.
|
|
|
|
If the target process has not forked any children, this key has no effect.
|
|
It also has no effect when not in forest view mode.
|
|
|
|
.TP 7
|
|
\ \ \fB^E\fR\ \ :\fIScale-CPU-Time-fields\fR (Ctrl key + `e')
|
|
The `time' fields are normally displayed with the greatest
|
|
precision their widths permit.
|
|
This toggle reduces that precision until it wraps.
|
|
It also illustrates the scaling those fields \fImight\fR experience
|
|
automatically, which usually depends on how long the system runs.
|
|
|
|
For example, if 'MMM:SS.hh' is shown, each ^E keystroke would change
|
|
it to: 'MM:SS', 'Hours,MM', 'Days+Hours' and finally 'Weeks+Days'.
|
|
|
|
Not all time fields are subject to the full range of such scaling.
|
|
|
|
.\" ..................................................
|
|
.PP
|
|
.B SIZE\fR of \*(TW
|
|
|
|
.TP 7
|
|
\ \ \ \fBi\fR\ \ :\fIIdle-Process\fR toggle \fR
|
|
Displays all tasks or just active tasks.
|
|
When this toggle is \*F, tasks that have not used any \*(PU since the
|
|
last update will not be displayed.
|
|
However, due to the granularity of the %CPU and TIME+ fields,
|
|
some processes may still be displayed that\fI appear\fR to have
|
|
used\fI no\fR \*(PU.
|
|
|
|
If this command is applied to the last \*(TD when in \*(AM, then it will not
|
|
affect the window's size, as all prior \*(TDs will have already been painted.
|
|
|
|
.TP 7
|
|
\ \ \ \fBn\fR | \fB#\fR\ \ :\fISet-Maximum-Tasks \fR
|
|
You will be prompted to enter the number of tasks to display.
|
|
The lessor of your number and available screen rows will be used.
|
|
|
|
When used in \*(AM, this is the command that gives you precise control over
|
|
the size of each currently visible \*(TD, except for the very last.
|
|
It will not affect the last window's size, as all prior \*(TDs will have
|
|
already been painted.
|
|
|
|
\*(NT If you wish to increase the size of the last visible \*(TD when in \*(AM,
|
|
simply decrease the size of the \*(TD(s) above it.
|
|
|
|
.\" ..................................................
|
|
.PP
|
|
.B SORTING\fR of \*(TW
|
|
.PP
|
|
.RS +3
|
|
For compatibility, this \*(We supports most of the former \*(We sort keys.
|
|
Since this is primarily a service to former \*(We users, these commands do
|
|
not appear on any help screen.
|
|
.nf
|
|
\fI command sorted-field supported \fR
|
|
A start time (non-display) \fB No \fR
|
|
M %MEM Yes
|
|
N PID Yes
|
|
P %CPU Yes
|
|
T TIME+ Yes
|
|
.fi
|
|
|
|
Before using any of the following sort provisions, \*(We suggests that you
|
|
temporarily turn on column highlighting using the `x' \*(CI.
|
|
That will help ensure that the actual sort environment matches your intent.
|
|
|
|
The following \*(CIs will\fB only\fR be honored when the current sort field
|
|
is\fB visible\fR.
|
|
The sort field might\fI not\fR be visible because:
|
|
1) there is insufficient\fI Screen Width \fR
|
|
2) the `f' \*(CI turned it \*F
|
|
|
|
.TP 7
|
|
\ \ \ \fB<\fR\ \ :\fIMove-Sort-Field-Left \fR
|
|
Moves the sort column to the left unless the current sort field is
|
|
the first field being displayed.
|
|
|
|
.TP 7
|
|
\ \ \ \fB>\fR\ \ :\fIMove-Sort-Field-Right \fR
|
|
Moves the sort column to the right unless the current sort field is
|
|
the last field being displayed.
|
|
|
|
.PP
|
|
The following \*(CIs will\fB always\fR be honored whether or not
|
|
the current sort field is visible.
|
|
|
|
.TP 7
|
|
\ \ \ \fBf\fR\ \ :\fIFields-Management \fR
|
|
This key displays a separate screen where you can change which field
|
|
is used as the sort column, among other functions.
|
|
This can be a convenient way to simply verify the current sort field,
|
|
when running \*(We with column highlighting turned \*F.
|
|
|
|
.TP 7
|
|
\ \ \ \fBR\fR\ \ :\fIReverse/Normal-Sort-Field\fR toggle \fR
|
|
Using this \*(CI you can alternate between high-to-low and low-to-high sorts.
|
|
|
|
.\" ......................................................................
|
|
.SS 4d. COLOR Mapping
|
|
.\" ----------------------------------------------------------------------
|
|
When you issue the `Z' \*(CI, you will be presented with a separate screen.
|
|
That screen can be used to change the colors in just the \*(CW or
|
|
in all four windows before returning to the \*(We display.
|
|
|
|
.P
|
|
The following \*(CIs are available.
|
|
.nf
|
|
\fB4\fR upper case letters to select a\fB target \fR
|
|
\fB8\fR numbers to select a\fB color \fR
|
|
normal toggles available \fR
|
|
B :bold disable/enable
|
|
b :running tasks "bold"/reverse
|
|
z :color/mono
|
|
other commands available \fR
|
|
a/w :apply, then go to next/prior
|
|
<Enter> :apply and exit
|
|
q :abandon current changes and exit
|
|
.fi
|
|
|
|
If you use `a' or `w' to cycle the targeted window, you will
|
|
have applied the color scheme that was displayed when you left that window.
|
|
You can, of course, easily return to any window and reapply different
|
|
colors or turn colors \*F completely with the `z' toggle.
|
|
|
|
The Color Mapping screen can also be used to change the \*(CG in
|
|
either \*(FM or \*(AM.
|
|
Whatever was targeted when `q' or <Enter> was pressed will be made current
|
|
as you return to the \*(We display.
|
|
|
|
.\" ----------------------------------------------------------------------
|
|
.SH 5. ALTERNATE\-DISPLAY Provisions
|
|
.\" ----------------------------------------------------------------------
|
|
.\" ......................................................................
|
|
.SS 5a. WINDOWS Overview
|
|
.\" ----------------------------------------------------------------------
|
|
.TP 3
|
|
.B Field Groups/Windows\fR:
|
|
In \*(FM there is a single window represented by the entire screen.
|
|
That single window can still be changed to display 1 of 4 different\fB field
|
|
groups\fR (\*(Xc `g' \*(CI, repeated below).
|
|
Each of the 4 \*(FGs has a unique separately configurable\fB \*(SA \fR
|
|
and its own configurable\fB \*(TA\fR.
|
|
|
|
In \*(AM, those 4 underlying \*(FGs can now be made visible
|
|
simultaneously, or can be turned \*F individually at your command.
|
|
|
|
The \*(SA will always exist, even if it's only the message line.
|
|
At any given time only\fI one\fR \*(SA can be displayed.
|
|
However, depending on your commands, there could be from\fI zero \fR
|
|
to\fI four\fR separate \*(TDs currently showing on the screen.
|
|
|
|
.TP 3
|
|
.B Current Window\fR:
|
|
The \*(CW is the window associated with the \*(SA and the window to which
|
|
task related commands are always directed.
|
|
Since in \*(AM you can toggle the \*(TD \*F, some commands might be
|
|
restricted for the \*(CW.
|
|
|
|
A further complication arises when you have toggled the first \*(SA
|
|
line \*F.
|
|
With the loss of the window name (the `l' toggled line), you'll not easily
|
|
know what window is the \*(CW.
|
|
|
|
.\" ......................................................................
|
|
.SS 5b. COMMANDS for Windows
|
|
.\" ----------------------------------------------------------------------
|
|
.TP 7
|
|
\ \ \ \fB-\fR | \fB_\fR\ \ :\fIShow/Hide-Window(s)\fR toggles \fR
|
|
The `\-' key turns the \*(CW's \*(TD \*O and \*F.
|
|
When \*O, that \*(TA will show a minimum of the columns header you've
|
|
established with the `f' \*(CI.
|
|
It will also reflect any other \*(TA options/toggles you've applied
|
|
yielding zero or more tasks.
|
|
|
|
The `_' key does the same for all \*(TDs.
|
|
In other words, it switches between the currently visible \*(TD(s) and any
|
|
\*(TD(s) you had toggled \*F.
|
|
If all 4 \*(TDs are currently visible, this \*(CI will leave the \*(SA
|
|
as the only display element.
|
|
|
|
.TP 7
|
|
*\ \ \fB=\fR | \fB+\fR\ \ :\fIEqualize/Reset-Window(s) \fR
|
|
The `=' key forces the \*(CW's \*(TD to be visible.
|
|
It also reverses any active `i' (idle tasks), `n' (max tasks), `u/U'
|
|
(user filter), `o/O' (other filter), `v' (hide children), `F' focused,
|
|
`L' (locate) and `!' (combine cpus) commands.
|
|
Also, if the window had been scrolled, it will be reset with this command.
|
|
\*(XT 5c. SCROLLING a Window for additional information regarding vertical
|
|
and horizontal scrolling.
|
|
|
|
The `+' key does the same for all windows.
|
|
The four \*(TDs will reappear, evenly balanced, while retaining
|
|
any customizations previously applied beyond those noted
|
|
for the `=' \*(CT.
|
|
|
|
.TP 7
|
|
*\ \ \fBA\fR\ \ :\fIAlternate-Display-Mode\fR toggle \fR
|
|
This command will switch between \*(FM and \*(AM.
|
|
|
|
The first time you issue this command, all four \*(TDs will be shown.
|
|
Thereafter when you switch modes, you will see only the \*(TD(s) you've
|
|
chosen to make visible.
|
|
|
|
.TP 7
|
|
*\ \ \fBa\fR | \fBw\fR\ \ :\fINext-Window-Forward/Backward \fR
|
|
This will change the \*(CW, which in turn changes the window to which
|
|
commands are directed.
|
|
These keys act in a circular fashion so you can reach any desired window
|
|
using either key.
|
|
|
|
Assuming the window name is visible (you have not toggled `l' \*F),
|
|
whenever the \*(CW name loses its emphasis/color, that's a reminder
|
|
the \*(TD is \*F and many commands will be restricted.
|
|
|
|
.TP 7
|
|
\ \ \ \fBG\fR\ \ :\fIChange-Window/Field-Group-Name \fR
|
|
You will be prompted for a new name to be applied to the \*(CW.
|
|
It does not require that the window name be visible
|
|
(the `l' toggle to be \*O).
|
|
|
|
.IP "*" 3
|
|
The \*(CIs shown with an \*(AK have use beyond \*(AM.
|
|
.nf
|
|
=, A, g are always available
|
|
a, w act the same with color mapping
|
|
and fields management
|
|
.fi
|
|
|
|
.TP 7
|
|
*\ \ \fBg\fR\ \ :\fIChoose-Another-Window/Field-Group \fR
|
|
You will be prompted to enter a number between 1 and 4 designating the
|
|
\*(FG which should be made the \*(CW.
|
|
|
|
In \*(FM, this command is necessary to alter the \*(CW.
|
|
In \*(AM, it is simply a less convenient alternative to the `a' and `w'
|
|
commands.
|
|
|
|
.\" ......................................................................
|
|
.SS 5c. SCROLLING a Window
|
|
.\" ----------------------------------------------------------------------
|
|
Typically a \*(TW is a partial view into a system's total tasks/threads
|
|
which shows only some of the available fields/columns.
|
|
With these \*(KSs, you can move that view vertically or horizontally to
|
|
reveal any desired task or column.
|
|
|
|
.TP 4
|
|
\fBUp\fR,\fBPgUp\fR\ \ :\fIScroll-Tasks \fR
|
|
Move the view up toward the first task row, until the first task is
|
|
displayed at the top of the \*(CW.
|
|
The \fIUp\fR \*(KA moves a single line while \fIPgUp\fR scrolls the
|
|
entire window.
|
|
|
|
.TP 4
|
|
\fBDown\fR,\fBPgDn\fR\ \ :\fIScroll-Tasks \fR
|
|
Move the view down toward the last task row, until the last task is
|
|
the only task displayed at the top of the \*(CW.
|
|
The \fIDown\fR \*(KA moves a single line while \fIPgDn\fR scrolls the
|
|
entire window.
|
|
|
|
.TP 4
|
|
\fBLeft\fR,\fBRight\fR\ \ :\fIScroll-Columns \fR
|
|
Move the view of displayable fields horizontally one column at a time.
|
|
|
|
\*(NT As a reminder, some fields/columns are not fixed-width but
|
|
allocated all remaining screen width when visible.
|
|
When scrolling right or left, that feature may produce some
|
|
unexpected results initially.
|
|
|
|
Additionally, there are special provisions for any variable width field
|
|
when positioned as the last displayed field.
|
|
Once that field is reached via the right arrow key, and is thus the only
|
|
column shown, you can continue scrolling horizontally within such a field.
|
|
\*(XC `C' \*(CI below for additional information.
|
|
|
|
.TP 4
|
|
\fBHome\fR\ \ :\fIJump-to-Home-Position \fR
|
|
Reposition the display to the un-scrolled coordinates.
|
|
|
|
.TP 4
|
|
\fBEnd\fR\ \ :\fIJump-to-End-Position \fR
|
|
Reposition the display so that the rightmost column reflects the last
|
|
displayable field and the bottom task row represents the last task.
|
|
|
|
\*(NT From this position it is still possible to scroll\fI down\fR
|
|
and\fI right\fR using the \*(KAs.
|
|
This is true until a single column and a single task is left as the only
|
|
display element.
|
|
|
|
.TP 4
|
|
\fBC\fR\ \ :\fIShow-scroll-coordinates\fR toggle \fR
|
|
Toggle an informational message which is displayed whenever the message
|
|
line is not otherwise being used.
|
|
That message will take one of two forms depending on whether or not a
|
|
variable width column has also been scrolled.
|
|
|
|
.nf
|
|
\fBscroll coordinates: y = n/n (tasks), x = n/n (fields)\fR
|
|
\fRscroll coordinates: y = n/n (tasks), x = n/n (fields)\fB + nn\fR
|
|
.fi
|
|
|
|
The coordinates shown as \fBn\fR/\fBn\fR are relative to the upper left
|
|
corner of the \*(CW.
|
|
The additional `\fB+\ nn\fR' represents the displacement into a variable
|
|
width column when it has been scrolled horizontally.
|
|
Such displacement occurs in normal 8 character tab stop amounts via
|
|
the right and left arrow keys.
|
|
|
|
.RS +4
|
|
.TP 4
|
|
\fBy = n/n (tasks) \fR
|
|
The first \fBn\fR represents the topmost visible task and is controlled
|
|
by \*(KSs.
|
|
The second \fBn\fR is updated automatically to reflect total tasks.
|
|
|
|
.TP 4
|
|
\fBx = n/n (fields) \fR
|
|
The first \fBn\fR represents the leftmost displayed column and is
|
|
controlled by \*(KSs.
|
|
The second \fBn\fR is the total number of displayable fields and is
|
|
established with the `\fBf\fR' \*(CI.
|
|
.RS -4
|
|
|
|
.PP
|
|
The above \*(CIs are\fB always\fR available in \*(FM but\fB never\fR
|
|
available in \*(AM if the \*(CW's \*(TD has been toggled \*F.
|
|
|
|
\*(NT When any form of filtering is active, you can expect some slight
|
|
aberrations when scrolling since not all tasks will be visible.
|
|
This is particularly apparent when using the Up/Down \*(KAs.
|
|
|
|
.\" ......................................................................
|
|
.SS 5d. SEARCHING in a Window
|
|
.\" ----------------------------------------------------------------------
|
|
You can use these \*(CIs to locate a task row containing a particular value.
|
|
|
|
.TP 4
|
|
\fBL\fR\ \ :\fILocate-a-string\fR
|
|
You will be prompted for the case-sensitive string to locate starting from
|
|
the current window coordinates.
|
|
There are no restrictions on search string content.
|
|
|
|
Searches are not limited to values from a single field or column.
|
|
All of the values displayed in a task row are allowed in a search string.
|
|
You may include spaces, numbers, symbols and even forest view artwork.
|
|
|
|
Keying <Enter> with no input will effectively disable the `&' key until
|
|
a new search string is entered.
|
|
|
|
.TP 4
|
|
\fB&\fR\ \ :\fILocate-next\fR
|
|
Assuming a search string has been established, \*(We will attempt to locate
|
|
the next occurrence.
|
|
|
|
.PP
|
|
When a match is found, the current window is repositioned vertically so the
|
|
task row containing that string is first.
|
|
The scroll coordinates message can provide confirmation of such vertical
|
|
repositioning (\*(Xc `C' \*(CI).
|
|
Horizontal scrolling, however, is never altered via searching.
|
|
|
|
The availability of a matching string will be influenced by the following
|
|
factors.
|
|
.RS +3
|
|
.TP 3
|
|
a. Which fields are displayable from the total available,
|
|
\*(Xt 3b. MANAGING Fields.
|
|
.TP 3
|
|
b. Scrolling a window vertically and/or horizontally,
|
|
\*(Xt 5c. SCROLLING a Window.
|
|
.TP 3
|
|
c. The state of the command/command-line toggle,
|
|
\*(Xc `c' \*(CI.
|
|
.TP 3
|
|
d. The stability of the chosen sort column,
|
|
for example PID is good but %CPU bad.
|
|
.RS -3
|
|
|
|
.PP
|
|
If a search fails, restoring the \*(CW home (unscrolled) position, scrolling
|
|
horizontally, displaying command-lines or choosing a more stable sort field
|
|
could yet produce a successful `&' search.
|
|
|
|
The above \*(CIs are\fB always\fR available in \*(FM but\fB never\fR
|
|
available in \*(AM if the \*(CW's \*(TD has been toggled \*F.
|
|
|
|
\*(NT Whenever a Search is active in a window, \*(We will turn
|
|
column highlighting \*F to prevent false matches on internal non-display
|
|
escape sequences.
|
|
Such highlighting will be restored when a window's search string is empty.
|
|
\*(XC `x' \*(CI for additional information on sort column highlighting.
|
|
|
|
.\" ......................................................................
|
|
.SS 5e. FILTERING in a Window
|
|
.\" ----------------------------------------------------------------------
|
|
You can use this `Other Filter' feature to establish selection criteria which
|
|
will then determine which tasks are shown in the \*(CW.
|
|
Such filters can be made persistent if preserved in the rcfile via
|
|
the 'W' \*(CI.
|
|
|
|
Establishing a filter requires: 1) a field name; 2) an operator; and
|
|
3) a selection value, as a minimum.
|
|
This is the most complex of \*(We's user input requirements so, when you make
|
|
a mistake, command recall will be your friend.
|
|
Remember the Up/Down \*(KAs or their aliases when prompted for input.
|
|
|
|
.B Filter Basics
|
|
.RS +3
|
|
.TP 3
|
|
1. field names are case sensitive and spelled as in the header
|
|
.TP 3
|
|
2. selection values need not comprise the full displayed field
|
|
.TP 3
|
|
3. a selection is either case insensitive or sensitive to case
|
|
.TP 3
|
|
4. the default is inclusion, prepending `!' denotes exclusions
|
|
.TP 3
|
|
5. multiple selection criteria can be applied to a \*(TW
|
|
.TP 3
|
|
6. inclusion and exclusion criteria can be used simultaneously
|
|
.TP 3
|
|
7. the 1 equality and 2 relational filters can be freely mixed
|
|
.TP 3
|
|
8. separate unique filters are maintained for each \*(TW
|
|
|
|
.PP
|
|
If a field is not turned on or is not currently in view, then your selection
|
|
criteria will not affect the display.
|
|
Later, should a filtered field become visible, the selection criteria will
|
|
then be applied.
|
|
.RE
|
|
|
|
.B Keyboard Summary
|
|
.TP 6
|
|
\ \ \fBO\fR\ \ :\fIOther-Filter\fR (upper case)
|
|
You will be prompted to establish a \fBcase sensitive\fR filter.
|
|
|
|
.TP 6
|
|
\ \ \fBo\fR\ \ :\fIOther-Filter\fR (lower case)
|
|
You will be prompted to establish a filter that \fBignores case\fR when
|
|
matching.
|
|
|
|
.TP 6
|
|
\ \fB^O\fR\ \ :\fIShow-Active-Filters\fR (Ctrl key + `o')
|
|
This can serve as a reminder of which filters are active in the \*(CW.
|
|
A summary will be shown on the message line until you press the <Enter> key.
|
|
|
|
.TP 6
|
|
\ \ \fB=\fR\ \ :\fIReset-Filtering\fR in current window
|
|
This clears all of your selection criteria in the \*(CW.
|
|
It also has additional impact so please \*(Xt 4a. GLOBAL Commands.
|
|
|
|
.TP 6
|
|
\ \ \fB+\fR\ \ :\fIReset-Filtering\fR in all windows
|
|
This clears the selection criteria in all windows, assuming you are in \*(AM.
|
|
As with the `=' \*(CI, it too has additional consequences so you might wish to
|
|
\*(Xt 5b. COMMANDS for Windows.
|
|
|
|
.PP
|
|
.B Input Requirements
|
|
.RS +3
|
|
.P
|
|
When prompted for selection criteria, the data you provide must take one
|
|
of two forms.
|
|
There are 3 required pieces of information, with a 4th as optional.
|
|
These examples use spaces for clarity but your input generally would not.
|
|
.nf
|
|
#1 \fB#2\fR #3 ( required )
|
|
Field\-Name ? include\-if\-value
|
|
\fB!\fR Field\-Name ? \fBexclude\fR\-if\-value
|
|
#4 ( optional )
|
|
.fi
|
|
|
|
Items #1, #3 and #4 should be self\-explanatory.
|
|
Item \fB#2\fR represents both a required \fIdelimiter\fR and the \fIoperator\fR
|
|
which must be one of either equality (`=') or relation (`<' or `>').
|
|
|
|
The `=' equality operator requires only a partial match and that
|
|
can reduce your `if\-value' input requirements.
|
|
The `>' or `<' relational operators always employ string comparisons,
|
|
even with numeric fields.
|
|
They are designed to work with a field's default \fIjustification\fR and
|
|
with homogeneous data.
|
|
When some field's numeric amounts have been subjected to \fIscaling\fR
|
|
while others have not, that data is no longer homogeneous.
|
|
|
|
If you establish a relational filter and you \fBhave\fR changed the
|
|
default Numeric or Character \fIjustification\fR, that filter is likely to fail.
|
|
When a relational filter is applied to a memory field and you \fBhave not\fR
|
|
changed the \fIscaling\fR, it may produce misleading results.
|
|
This happens, for example, because `100.0m' (MiB) would appear greater
|
|
than `1.000g' (GiB) when compared as strings.
|
|
|
|
If your filtered results appear suspect, simply altering justification or
|
|
scaling may yet achieve the desired objective.
|
|
See the `j', `J' and `e' \*(CIs for additional information.
|
|
.RE
|
|
|
|
.B Potential Problems
|
|
.RS +3
|
|
.P
|
|
These \fBGROUP\fR filters could produce the exact same results or the
|
|
second one might not display anything at all, just a blank \*(TW.
|
|
.nf
|
|
GROUP=root ( only the same results when )
|
|
GROUP=ROOT ( invoked via lower case `o' )
|
|
.fi
|
|
|
|
Either of these \fBRES\fR filters might yield inconsistent and/or
|
|
misleading results, depending on the current memory scaling factor.
|
|
Or both filters could produce the exact same results.
|
|
.nf
|
|
RES>9999 ( only the same results when )
|
|
!RES<10000 ( memory scaling is at `KiB' )
|
|
.fi
|
|
|
|
This \fBnMin\fR filter illustrates a problem unique to scalable fields.
|
|
This particular field can display a maximum of 4 digits, beyond which values
|
|
are automatically scaled to KiB or above.
|
|
So while amounts greater than 9999 exist, they will appear as 2.6m, 197k, etc.
|
|
.nf
|
|
nMin>9999 ( always a blank \*(TW )
|
|
.fi
|
|
.RE
|
|
|
|
.B Potential Solutions
|
|
.RS +3
|
|
.P
|
|
These examples illustrate how Other Filtering can be creatively
|
|
applied to achieve almost any desired result.
|
|
Single quotes are sometimes shown to delimit the spaces which are part of
|
|
a filter or to represent a request for status (^O) accurately.
|
|
But if you used them with if-values in real life, no matches would be found.
|
|
|
|
Assuming field \fBnTH\fR is displayed, the first filter will result in
|
|
only multi-threaded processes being shown.
|
|
It also reminds us that a trailing space is part of every displayed field.
|
|
The second filter achieves the exact same results with less typing.
|
|
.nf
|
|
!nTH=` 1 ' ( ' for clarity only )
|
|
nTH>1 ( same with less i/p )
|
|
.fi
|
|
|
|
With Forest View mode active and the \fBCOMMAND\fR column in view, this
|
|
filter effectively collapses child processes so that just 3 levels are shown.
|
|
.nf
|
|
!COMMAND=` `- ' ( ' for clarity only )
|
|
.fi
|
|
|
|
The final two filters appear as in response to the status request key (^O).
|
|
In reality, each filter would have required separate input.
|
|
The \fBPR\fR example shows the two concurrent filters necessary to display
|
|
tasks with priorities of 20 or more, since some might be negative.
|
|
Then by exploiting trailing spaces, the \fBnMin\fR series of filters could
|
|
achieve the failed `9999' objective discussed above.
|
|
.nf
|
|
`PR>20' + `!PR=-' ( 2 for right result )
|
|
`!nMin=0 ' + `!nMin=1 ' + `!nMin=2 ' + `!nMin=3 ' ...
|
|
.fi
|
|
.RS -3
|
|
|
|
\*(NT Whenever Other Filtering is active in a window, \*(We will turn
|
|
column highlighting \*F to prevent false matches on internal non-display
|
|
escape sequences.
|
|
Such highlighting will be restored when a window is no longer subject
|
|
to filtering.
|
|
\*(XC `x' \*(CI for additional information on sort column highlighting.
|
|
.RE
|
|
|
|
.\" ----------------------------------------------------------------------
|
|
.SH 6. FILES
|
|
.\" ----------------------------------------------------------------------
|
|
.SS 6a. PERSONAL Configuration File
|
|
.\" ----------------------------------------------------------------------
|
|
This file is created or updated via the 'W' \*(CI.
|
|
|
|
The legacy version is written as `$HOME/.your\-name\-4\-\*(We' + `rc'
|
|
with a leading period.
|
|
|
|
A newly created \*(CF is written as procps/your\-name\-4\-\*(We' + `rc'
|
|
without a leading period.
|
|
The procps directory will be subordinate to either $XDG_CONFIG_HOME when
|
|
set as an absolute path or the $HOME/.config directory.
|
|
|
|
While not intended to be edited manually, here is the general layout:
|
|
.nf
|
|
global # line 1: the program name/alias notation
|
|
" # line 2: id,altscr,irixps,delay,curwin
|
|
per ea # line a: winname,fieldscur
|
|
window # line b: winflags,sortindx,maxtasks,etc
|
|
" # line c: summclr,msgsclr,headclr,taskclr
|
|
global # line 15: additional miscellaneous settings
|
|
" # any remaining lines are devoted to optional
|
|
" # active 'other filters' discussed in section 5e above
|
|
" # plus 'inspect' entries discussed in section 6b below
|
|
.fi
|
|
|
|
If a valid absolute path to the rcfile cannot be established, customizations
|
|
made to a running \*(We will be impossible to preserve.
|
|
|
|
.\" ......................................................................
|
|
.SS 6b. ADDING INSPECT Entries
|
|
.\" ----------------------------------------------------------------------
|
|
To exploit the `Y' \*(CI, you must add entries at the\fB end\fR of the
|
|
\*(We personal \*(CF.
|
|
Such entries simply reflect a file to be read or command/pipeline to be
|
|
executed whose results will then be displayed in a separate scrollable,
|
|
searchable window.
|
|
|
|
If you don't know the location or name of your \*(We rcfile, use the `W'
|
|
\*(CI to rewrite it and note those details.
|
|
|
|
Inspect entries can be added with a redirected echo or by editing the \*(CF.
|
|
Redirecting an echo risks overwriting the rcfile should it replace (>)
|
|
rather than append (>>) to that file.
|
|
Conversely, when using an editor care must be taken not to corrupt existing
|
|
lines, some of which could contain unprintable data or unusual characters
|
|
depending on the \*(We version under which that \*(CF was saved.
|
|
|
|
Those Inspect entries beginning with a `#' character are ignored, regardless
|
|
of content.
|
|
Otherwise they consist of the following 3 elements, each of which\fI must\fR
|
|
be separated by a tab character (thus 2 `\\t' total):
|
|
|
|
.nf
|
|
.type: literal `file' or `pipe'
|
|
.name: selection shown on the Inspect screen
|
|
.fmts: string representing a path or command
|
|
.fi
|
|
|
|
The two types of Inspect entries are\fI not\fR interchangeable.
|
|
Those designated `\fBfile\fR' will be accessed using fopen and
|
|
must reference a single file in the `.fmts' element.
|
|
Entries specifying `\fBpipe\fR' will employ popen, their `.fmts' element
|
|
could contain many pipelined commands and, none can be interactive.
|
|
|
|
If the file or pipeline represented in your `.fmts' deals with the specific PID
|
|
input or accepted when prompted, then the format string must also contain
|
|
the `\fB%d\fR' specifier, as these examples illustrate.
|
|
|
|
.nf
|
|
.fmts= /proc/\fI%d\fR/numa_maps
|
|
.fmts= lsof -P -p\fI %d\fR
|
|
.fi
|
|
|
|
For `\fBpipe\fR' type entries only, you may also wish to redirect stderr to
|
|
stdout for a more comprehensive result.
|
|
Thus the format string becomes:
|
|
|
|
.nf
|
|
.fmts= pmap -x %d\fI 2>&1\fR
|
|
.fi
|
|
|
|
Here are examples of both types of Inspect entries as they might appear
|
|
in the rcfile.
|
|
The first entry will be ignored due to the initial `#' character.
|
|
For clarity, the pseudo tab depictions (^I) are surrounded by an
|
|
extra space but the actual tabs would not be.
|
|
.nf
|
|
|
|
# pipe ^I Sockets ^I lsof -n -P -i 2>&1
|
|
pipe ^I Open Files ^I lsof -P -p %d 2>&1
|
|
file ^I NUMA Info ^I /proc/%d/numa_maps
|
|
pipe ^I Log ^I tail -n100 /var/log/syslog | sort -Mr
|
|
.fi
|
|
|
|
Except for the commented entry above, these next examples show what could
|
|
be echoed to achieve similar results, assuming the rcfile name was `.toprc'.
|
|
However, due to the embedded tab characters, each of these lines should be
|
|
preceded by `\fB/bin/echo \-e\fR', not just a simple an `echo', to
|
|
enable backslash interpretation regardless of which shell you use.
|
|
|
|
.nf
|
|
"pipe\\tOpen Files\\tlsof -P -p %d 2>&1" >> ~/.toprc
|
|
"file\\tNUMA Info\\t/proc/%d/numa_maps" >> ~/.toprc
|
|
"pipe\\tLog\\ttail -n200 /var/log/syslog | sort -Mr" >> ~/.toprc
|
|
.fi
|
|
|
|
If any inspect entry you create produces output with unprintable characters
|
|
they will be displayed in either the ^C notation or hexadecimal <FF> form,
|
|
depending on their value.
|
|
This applies to tab characters as well, which will show as `^I'.
|
|
If you want a truer representation, any embedded tabs should be expanded.
|
|
The following example takes what could have been a `file' entry but employs
|
|
a `pipe' instead so as to expand the embedded tabs.
|
|
|
|
.nf
|
|
# next would have contained `\\t' ...
|
|
# file ^I <your_name> ^I /proc/%d/status
|
|
# but this will eliminate embedded `\\t' ...
|
|
pipe ^I <your_name> ^I cat /proc/%d/status | expand \-
|
|
.fi
|
|
|
|
\*(NT Some programs might rely on \fISIGINT\fR to end.
|
|
Therefore, if a `\fBpipe\fR' such as the following is established, one must
|
|
use Ctrl-C to terminate it in order to review the results.
|
|
This is the single occasion where a `^C' will not also terminate \*(We.
|
|
|
|
.nf
|
|
pipe ^I Trace ^I /usr/bin/strace -p %d 2>&1
|
|
.fi
|
|
|
|
Lastly, while `\fBpipe\fR' type entries have been discussed in terms of pipelines
|
|
and commands, there is nothing to prevent you from including \fI shell scripts\fR
|
|
as well.
|
|
Perhaps even newly created scripts designed specifically for the `Y' \*(CI.
|
|
|
|
For example, as the number of your Inspect entries grows over time, the `Options:'
|
|
row will be truncated when screen width is exceeded.
|
|
That does not affect operation other than to make some selections invisible.
|
|
However, if some choices are lost to truncation but you want to see more options,
|
|
there is an easy solution hinted at below.
|
|
|
|
.nf
|
|
Inspection Pause at pid ...
|
|
Use: left/right then <Enter> ...
|
|
Options: help 1 2 3 4 5 6 7 8 9 10 11 ...
|
|
.fi
|
|
|
|
The entries in the \*(We rcfile would have a number for the `.name' element and
|
|
the `help' entry would identify a shell script you've written explaining what
|
|
those numbered selections actually mean.
|
|
In that way, many more choices can be made visible.
|
|
|
|
.\" ......................................................................
|
|
.SS 6c. SYSTEM Configuration File
|
|
.\" ----------------------------------------------------------------------
|
|
This \*(CF represents defaults for users who have not saved their own \*(CF.
|
|
The format mirrors exactly the personal \*(CF and can also include `inspect'
|
|
entries as explained above.
|
|
|
|
Creating it is a simple process.
|
|
|
|
1. Configure \*(We appropriately for your installation and preserve that
|
|
configuration with the `W' \*(CI.
|
|
|
|
2. Add and test any desired `inspect' entries.
|
|
|
|
3. Copy that \*(CF to the \fI/etc/\fR directory as `\fBtopdefaultrc\fR'.
|
|
|
|
.\" ......................................................................
|
|
.SS 6d. SYSTEM Restrictions File
|
|
.\" ----------------------------------------------------------------------
|
|
The presence of this file will influence which version of the help screen
|
|
is shown to an ordinary user.
|
|
|
|
More importantly, it will limit what ordinary users are allowed
|
|
to do when \*(We is running.
|
|
They will not be able to issue the following commands.
|
|
.nf
|
|
k Kill a task
|
|
r Renice a task
|
|
d or s Change delay/sleep interval
|
|
.fi
|
|
|
|
This \*(CF is not created by \*(We.
|
|
Rather, it is created manually and placed it in the \fI/etc/\fR
|
|
directory as `\fBtoprc\fR'.
|
|
|
|
It should have exactly two lines, as shown in this example:
|
|
.nf
|
|
s # line 1: secure mode switch
|
|
5.0 # line 2: delay interval in seconds
|
|
.fi
|
|
|
|
.\" ----------------------------------------------------------------------
|
|
.SH 7. ENVIRONMENT VARIABLE(S)
|
|
.\" ----------------------------------------------------------------------
|
|
The value set for the following is unimportant, just its presence.
|
|
|
|
.IP LIBPROC_HIDE_KERNEL
|
|
This will prevent display of any kernel threads and exclude such processes
|
|
from the \*(SA Tasks/Threads counts.
|
|
|
|
.\" ----------------------------------------------------------------------
|
|
.SH 8. STUPID TRICKS Sampler
|
|
.\" ----------------------------------------------------------------------
|
|
Many of these tricks work best when you give \*(We a scheduling boost.
|
|
So plan on starting him with a nice value of \-10, assuming you've got
|
|
the authority.
|
|
|
|
.\" ......................................................................
|
|
.SS 7a. Kernel Magic
|
|
.\" ----------------------------------------------------------------------
|
|
.\" sorry, just can't help it -- don't ya love the sound of this?
|
|
For these stupid tricks, \*(We needs \*(FM.
|
|
.\" ( apparently AM static was a potential concern )
|
|
|
|
.IP \(bu 3
|
|
The user interface, through prompts and help, intentionally implies
|
|
that the delay interval is limited to tenths of a second.
|
|
However, you're free to set any desired delay.
|
|
If you want to see Linux at his scheduling best, try a delay of .09
|
|
seconds or less.
|
|
|
|
For this experiment, under x-windows open an xterm and maximize it.
|
|
Then do the following:
|
|
.nf
|
|
. provide a scheduling boost and tiny delay via:
|
|
nice -n -10 \*(We -d.09
|
|
. keep sorted column highlighting \*F so as to
|
|
minimize path length
|
|
. turn \*O reverse row highlighting for emphasis
|
|
. try various sort columns (TIME/MEM work well),
|
|
and normal or reverse sorts to bring the most
|
|
active processes into view
|
|
.fi
|
|
|
|
What you'll see is a very busy Linux doing what he's always done for you,
|
|
but there was no program available to illustrate this.
|
|
|
|
.IP \(bu 3
|
|
Under an xterm using `white-on-black' colors, on \*(We's Color Mapping screen
|
|
set the task color to black and be sure that task highlighting is set to bold,
|
|
not reverse.
|
|
Then set the delay interval to around .3 seconds.
|
|
|
|
After bringing the most active processes into view, what you'll see are
|
|
the ghostly images of just the currently running tasks.
|
|
|
|
.IP \(bu 3
|
|
Delete the existing rcfile, or create a new symlink.
|
|
Start this new version then type `T' (a secret key,
|
|
\*(Xt 4c. Task Area Commands, SORTING) followed by `W' and `q'.
|
|
Finally, restart the program with \-d0 (zero delay).
|
|
|
|
Your display will be refreshed at three times the rate of the former \*(We,
|
|
a 300% speed advantage.
|
|
As \*(We climbs the TIME ladder, be as patient as you can while speculating
|
|
on whether or not \*(We will ever reach the \*(We.
|
|
|
|
.\" ......................................................................
|
|
.SS 7b. Bouncing Windows
|
|
.\" ----------------------------------------------------------------------
|
|
For these stupid tricks, \*(We needs \*(AM.
|
|
|
|
.IP \(bu 3
|
|
With 3 or 4 \*(TDs visible, pick any window other than the last
|
|
and turn idle processes \*F using the `i' \*(CT.
|
|
Depending on where you applied `i', sometimes several \*(TDs are bouncing and
|
|
sometimes it's like an accordion, as \*(We tries his best to allocate space.
|
|
|
|
.IP \(bu 3
|
|
Set each window's summary lines differently: one with no memory (`m'); another
|
|
with no states (`t'); maybe one with nothing at all, just the message line.
|
|
Then hold down `a' or `w' and watch a variation on bouncing windows \*(Em
|
|
hopping windows.
|
|
|
|
.IP \(bu 3
|
|
Display all 4 windows and for each, in turn, set idle processes to \*F using
|
|
the `i' \*(CT.
|
|
You've just entered the "extreme bounce" zone.
|
|
|
|
.\" ......................................................................
|
|
.SS 7c. The Big Bird Window
|
|
.\" ----------------------------------------------------------------------
|
|
This stupid trick also requires \*(AM.
|
|
|
|
.IP \(bu 3
|
|
Display all 4 windows and make sure that 1:Def is the \*(CW.
|
|
Then, keep increasing window size with the `n' \*(CI until all the other
|
|
\*(TDs are "pushed out of the nest".
|
|
|
|
When they've all been displaced, toggle between all visible/invisible windows
|
|
using the `_' \*(CT.
|
|
Then ponder this:
|
|
.br
|
|
is \*(We fibbing or telling honestly your imposed truth?
|
|
|
|
.\" ......................................................................
|
|
.SS 7d. The Ol' Switcheroo
|
|
.\" ----------------------------------------------------------------------
|
|
This stupid trick works best without \*(AM, since justification is active
|
|
on a per window basis.
|
|
|
|
.IP \(bu 3
|
|
Start \*(We and make COMMAND the last (rightmost) column displayed.
|
|
If necessary, use the `c' \*(CT to display command lines and ensure
|
|
that forest view mode is active with the `V' \*(CT.
|
|
|
|
Then use the up/down arrow keys to position the display so that some
|
|
truncated command lines are shown (`+' in last position).
|
|
You may have to resize your xterm to produce truncation.
|
|
|
|
Lastly, use the `j' \*(CT to make the COMMAND column right justified.
|
|
|
|
Now use the right arrow key to reach the COMMAND column.
|
|
Continuing with the right arrow key, watch closely the direction
|
|
of travel for the command lines being shown.
|
|
|
|
.br
|
|
some lines travel left, while others travel right
|
|
|
|
eventually all lines will Switcheroo, and move right
|
|
|
|
.\" ----------------------------------------------------------------------
|
|
.SH 9. BUGS
|
|
.\" ----------------------------------------------------------------------
|
|
Please send bug reports to
|
|
.UR procps@freelists.org
|
|
.UE .
|
|
|
|
\" ----------------------------------------------------------------------
|
|
.SH 10. SEE Also
|
|
.\" ----------------------------------------------------------------------
|
|
.BR free (1),
|
|
.BR ps (1),
|
|
.BR uptime (1),
|
|
.BR atop (1),
|
|
.BR slabtop (1),
|
|
.BR vmstat (8),
|
|
.BR w (1)
|