diff options
Diffstat (limited to 'man/top.1')
-rw-r--r-- | man/top.1 | 2810 |
1 files changed, 2810 insertions, 0 deletions
diff --git a/man/top.1 b/man/top.1 new file mode 100644 index 0000000..3791dfe --- /dev/null +++ b/man/top.1 @@ -0,0 +1,2810 @@ +.ig +. manual page for NEW and IMPROVED linux top +. +. Copyright (c) 2002-2023 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 "August 2023" "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 + +The `sy' value above also reflects the time running a virtual \*(Pu +for guest operating systems, including those that have been niced. + +Beyond the first tasks/threads line, there are alternate \*(PU display +modes available via the 4-way `t' \*(CT. +They show an abbreviated summary 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 + guests) percentage; c) is the total percentage; +and d) is one of two visual graphs of those representations. +Such graphs also reflect separate `user' and `system' portions. + +If the `4' \*(CT is used to yield more than two cpus per line, +results will be further abridged eliminating the a) and b) elements. +However, that information is still reflected in the graph itself +assuming color is active or, if not, bars vs. blocks are being shown. + +\*(XT 4b. SUMMARY AREA Commands for additional information on the `t' +and `4' \*(CTs. + +.\" ...................................................................... +.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. The /proc/meminfo source fields are shown in parenthesis. + +Line 1 reflects \*(MP, classified as: +.nf + total ( MemTotal ) + free ( MemFree ) + used ( MemTotal - MemAvailable ) + buff/cache ( Buffers + Cached + SReclaimable ) +.fi + +Line 2 reflects mostly \*(MV, classified as: +.nf + total ( SwapTotal ) + free ( SwapFree ) + used ( SwapTotal - SwapFree ) + avail ( MemAvailable, 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 the non-cached portion of \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%CUC \*(Em \*(PU Utilization \fR +This field is identical to %CUU below, except the percentage also +reflects reaped child processes. + +.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 +\fBnsCGROUP \*(Em CGROUP namespace \fR +The Inode of the namespace used to hide the identity of the control group of +which process is a member. + +.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 +\fBnsTIME \*(Em TIME namespace \fR +The Inode of the namespace which allows processes to see different system +times in a way similar to the UTS namespace. + +.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, + ^G, ^K, ^N, ^P, ^U, ^L, ^R + 4b.\fI Summary-Area-Commands \fR + C, l, t, m, 1, 2, 3, 4, 5, ! + 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 nsCGROUP 10 + RUID 5 RUSER 8 nsIPC 10 + SUID 5 SUSER 8 nsMNT 10 + UID 5 TTY 8 nsNET 10 + USER 8 nsPID 10 + nsTIME 10 + 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. + +\*(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. + +.P +\ \ \fB^G\fR\ \ :\fIDisplay-Control-Groups \fR (Ctrl key + `g') +.br +\ \ \fB^K\fR\ \ :\fIDisplay-Cmdline \fR (Ctrl key + `k') +.br +\ \ \fB^N\fR\ \ :\fIDisplay-Environment \fR (Ctrl key + `n') +.br +\ \ \fB^P\fR\ \ :\fIDisplay-Namesspaces \fR (Ctrl key + `p') +.br +\ \ \fB^U\fR\ \ :\fIDisplay-Supplementary-Groups \fR (Ctrl key + `u') +.br +.RS +7 +Applied to the first process displayed, these commands will show +that task's full (potentially wrapped) information. +Such data will be displayed in a separate window at the bottom of +the screen while normal \*(We monitoring continues. + +Keying the\fI same\fR `Ctrl' command a second time removes that +separate window as does the `=' command. +Keying a different `Ctrl' combination, while one is already active, +immediately transitions to the new information. + +Notable among these provisions is the Ctrl+N (environment) command. +Its output can be extensive and not easily read when line wrapped. +A more readable version can be achieved with an `Inspect' entry +in the rcfile like the following. + +.nf + pipe ^I Environment ^I cat /proc/%d/environ | tr '\\0' '\\n' +.fi + +\*(XC `Y' \*(CI above and topic 6b. ADDING INSPECT Entries for +additional information. + +As an alternative to `Inspect', and available to all of these `Ctrl' +commands, the tab key can be used to highlight individual elements +in the bottom window. +.RS -7 + +.TP 7 +\ \ \fB^L\fR\ \ :\fILogged-Messages \fR (Ctrl key + `l') +The 10 most recent messages are displayed in a separate window at +the bottom of the screen while normal \*(We monitoring continues. +Keying `^L' a second time removes that window as does the `=' command. +Use the tab key to highlight individual messages. + +.TP 7 +*\ \fB^R\fR\ \ :\fIRenice-an-Autogroup \fR (Ctrl key + `r') +You will be prompted for a PID and then the value for its +autogroup AGNI. + +Entering no PID will be interpreted as the default shown in +the prompt (the first task displayed). + +A positive AGNI value will cause processes in that autogroup +to lose priority. +Conversely, a negative value causes them to be viewed more +favorably by the kernel. +Ordinary users are not allowed to set negative AGNI values. + +If you wish to abort the renice process type <Esc>. + +.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-Multiple-Elements-Adjacent\fR toggle \fR +This \*(CT turns the `1' toggle \*F and shows multiple \*(PU and +Memory results on each line. +Each successive `4' key adds another \*(PU until again reverting +to separate lines for \*(PU and Memory results. + +A maximum of 8 \*(PUs per line can be displayed in this manner. +However, data truncation may occur before reaching the maximum. +That is definitely true when displaying detailed statistics via +the `t' \*(CT since such data cannot be scaled like the graphic +representations. + +If one wished to quickly exit adjacent mode without cycling all the +way to 8, simply use the `1' \*(CT. + +.TP 7 +\ \ \ \fB5\fR\ \ :\fIDisplay-P-Cores-and-E-Cores\fR toggle \fR +This \*(CT is only active when the `t' toggle is \*O and the `1', `2', +`3' and `!' toggles are \*F, thus showing individual \*(PU results. +It assumes a platform has multiple cores of two distinct types, +either multi-threaded (P-Core) or single-threaded (E-Core). + +While normally each \*(Pu is displayed as `%Cpu0, %Cpu1, ...', this +toggle can be used to identify and/or filter those \*(Pus by their +core type, either P-Core (performance) or E-Core (efficient). + +The 1st time `5' is struck, each \*(PU is displayed as `%Cp\fBP\fR' +or `%Cp\fBE\fR' representing the two core types. +The 2nd time, only P-Cores (%Cp\fBP\fR) will be shown. +The 3rd time, only E-Cores (%Cp\fBE\fR) are displayed. +When this \*(CT is struck for the 4th time, the \*(PU display +returns to the normal `%Cpu' convention. + +If separate\fI performance\fR and\fI efficient\fR categories are +not present, this \*(CT will have no effect. + +.TP 7 +\ \ \ \fB!\fR\ \ :\fICombine-Cpus-Mode\fR toggle \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 \*(Pus combined is doubled thus +reducing the total number of \*(Pu lines displayed. + +For example, with the first press of `!' two \*(Pus will be combined and +displayed as `0-1, 2-3, ...' instead of the normal `%Cpu0, %Cpu1, %Cpu2, +%Cpu3, ...'. With a second `!' \*(CT four \*(Pus are combined and shown +as `0-3, 4-7, ...'. +Then the third `!' press, combining eight \*(Pus, shows as `0-7, 8-15, ...', +etc. + +Such progression continues until individual \*(Pus are again displayed +and impacts both the `1' and `4' toggles (one or multiple 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 + +.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. + +.\" ...................................................................... +.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 + +.\" ---------------------------------------------------------------------- +.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) |