Man Linux: Main Page and Category List

NAME

       top - display Linux tasks

SYNOPSIS

       top -hv | -bcHisS -d delay -n iterations -p pid [, pid ...]

       The traditional switches ’-’ and whitespace are optional.

DESCRIPTION

       The  top program provides a dynamic real-time view of a running system.
       It can display system summary information as well as a  list  of  tasks
       currently  being  managed  by  the  Linux  kernel.  The types of system
       summary information shown and the types, order and size of  information
       displayed  for  tasks  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  --  encompassing every aspect  of  its  operation.   And
       while top 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 top’s display and used when reading and writing a
       configuration file.

OVERVIEW

   Documentation
       The remaining Table of Contents
           1. COMMAND-LINE Options
           2. FIELDS / Columns
              a. DESCRIPTIONS of Fields
              b. SELECTING and ORDERING Columns
           3. INTERACTIVE Commands
              a. GLOBAL Commands
              b. SUMMARY Area Commands
              c. TASK Area Commands
              d. COLOR Mapping
           4. ALTERNATE-DISPLAY Mode
              a. WINDOWS Overview
              b. COMMANDS for Windows
           5. FILES
              a. SYSTEM Configuration File
              b. PERSONAL Configuration File
           6. STUPID TRICKS Sampler
              a. Kernel Magic
              b. Bouncing Windows
              c. The Big Bird Window
           7. BUGS, 8. HISTORY Former top, 9. AUTHOR, 10. SEE ALSO

   Operation
       When operating top, the two most important keys are help (’h’  or  ’?’)
       and   quit   (’q’)  key.   Alternatively,  you  could  simply  use  the
       traditional interrupt key (’^C’) when you’re done.

       When you start top for the first time, you’ll  be  presented  with  the
       traditional  screen  elements: 1) Summary Area; 2) Message/Prompt Line;
       3) Columns  Header;  4)  Task  Area.   There  will,  however,  be  some
       differences when compared to the former top.

       Highlighting
          Summary_Area:  There  is  no  highlighting  for load/uptime and only
          values are highlighted for other elements.

          Task_Area: Tasks running (or ready to run) will be highlighted,  and
          bold is only one way of emphasizing such processes.

       Content/Labels
          Summary_Area: The program name is shown, perhaps a symlink or alias.
          The Cpu(s) state label hints at  other  possibilities.   The  memory
          stats use a lower case ’k’.

          Columns_Header: Will show a new field and some changed labels.  More
          new fields will be found as you customize your top.

       Note: the width of top’s display will  be  limited  to  512  positions.
       Displaying  all  fields  requires  a  minimum  of  160 characters.  The
       remaining width could be used for the ’Command’ column.

   Startup Defaults
       The following startup defaults assume no configuration  file,  thus  no
       user customizations.  Even so, items shown with an asterisk (’*’) could
       be overridden through the command-line.

           Global_defaults
              ’A’ - Alt display      Off (full-screen)
            * ’d’ - Delay time       3.0 seconds
              ’I’ - Irix mode        On  (no, ’solaris’ smp)
            * ’p’ - PID monitoring   Off
            * ’s’ - Secure mode      Off (unsecured)
              ’B’ - Bold enable      Off
           Summary_Area_defaults
              ’l’ - Load Avg/Uptime  On  (thus program name)
              ’t’ - Task/Cpu states  On  (1+1 lines, see ’1’)
              ’m’ - Mem/Swap usage   On  (2 lines worth)
              ’1’ - Single Cpu       On  (thus 1 line if smp)
           Task_Area_defaults
              ’b’ - Bold hilite      On  (not ’reverse’)
            * ’c’ - Command line     Off (name, not cmdline)
            * ’H’ - Threads          Off (show all threads)
            * ’i’ - Idle tasks       On  (show all tasks)
              ’R’ - Reverse sort     On  (pids high-to-low)
            * ’S’ - Cumulative time  Off (no, dead children)
              ’x’ - Column hilite    Off (no, sort field)
              ’y’ - Row hilite       On  (yes, running tasks)
              ’z’ - color/mono       Off (no, colors)

1. COMMAND-LINE Options

       The command-line syntax for top consists of:

            -hv | -bcHisS -d delay -n iterations -p pid [,pid...]

       The  typically  mandatory  switches  (’-’)  and  even  whitespace   are
       completely optional.

       -b : Batch mode operation
            Starts  top  in  ’Batch  mode’,  which could be useful for sending
            output from top to other programs or to a file.  In this mode, top
            will  not  accept input and runs until the iterations limit you’ve
            set with the ’-n’ command-line option or until killed.

       -c : Command line/Program name toggle
            Starts top with the last remembered ’c’ state reversed.  Thus,  if
            top was displaying command lines, now that field will show program
            names, and visa  versa.   See  the  ’c’  interactive  command  for
            additional information.

       -d : Delay time interval as:  -d ss.tt (seconds.tenths)
            Specifies  the  delay  between  screen  updates, and overrides the
            corresponding value in one’s personal configuration  file  or  the
            startup  default.   Later  this can be changed with the ’d’ or ’s’
            interactive commands.

            Fractional seconds are honored,  but  a  negative  number  is  not
            allowed.   In  all  cases, however, such changes are prohibited if
            top is running in ’Secure mode’, except for root (unless  the  ’s’
            command-line  option  was  used).   For  additional information on
            ’Secure mode’ see topic 5a. SYSTEM Configuration File.

       -h : Help
            Show library version and the usage prompt, then quit.

       -H : Threads toggle
            Starts top with the last remembered ’H’ state reversed.  When this
            toggle   is   On,   all  individual  threads  will  be  displayed.
            Otherwise, top displays a summation of all threads in a process.

       -i : Idle Processes toggle
            Starts top with the last remembered ’i’ state reversed.  When this
            toggle  is  Off,  tasks  that  are  idled  or  zombied will not be
            displayed.

       -n : Number of iterations limit as:  -n number
            Specifies the maximum number of iterations, or frames, top  should
            produce before ending.

       -u : Monitor by user as:  -u somebody
            Monitor only processes with an effective UID or user name matching
            that given.

       -U : Monitor by user as:  -U somebody
            Monitor only processes with a  UID  or  user  name  matching  that
            given.   This matches real, effective, saved, and filesystem UIDs.

       -p : Monitor PIDs as:  -pN1 -pN2 ...  or  -pN1, N2 [,...]
            Monitor only processes with specified process  IDs.   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.

            This is a command-line option only.  And should you wish to return
            to normal operation, it is not necessary to quit and  and  restart
            top  --  just issue the ’=’ interactive command.

       -s : Secure mode operation
            Starts  top  with secure mode forced, even for root.  This mode is
            far better controlled through the system configuration  file  (see
            topic 5. FILES).

       -S : Cumulative time mode toggle
            Starts  top  with  the  last  remembered ’S’ state reversed.  When
            ’Cumulative mode’ is On, each process is listed with the cpu  time
            that  it and its dead children have used.  See the ’S’ interactive
            command for additional information regarding this mode.

       -v : Version
            Show library version and the usage prompt, then quit.

2. FIELDS / Columns

   2a. DESCRIPTIONS of Fields
       Listed below are top’s available fields.  They  are  always  associated
       with  the  letter  shown,  regardless  of  the  position  you  may have
       established for them with the ’o’ (Order fields) interactive command.

       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 see topic 3c. TASK Area Commands.

       a: PID  --  Process Id
          The task’s unique process ID, which periodically wraps, though never
          restarting at zero.

       b: PPID  --  Parent Process Pid
          The process ID of a task’s parent.

       c: RUSER  --  Real User Name
          The real user name of the task’s owner.

       d: UID  --  User Id
          The effective user ID of the task’s owner.

       e: USER  --  User Name
          The effective user name of the task’s owner.

       f: GROUP  --  Group Name
          The effective group name of the task’s owner.

       g: TTY  --  Controlling Tty
          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.

       h: PR  --  Priority
          The priority of the task.

       i: NI  --  Nice value
          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 dispatchability.

       j: P  --  Last used CPU (SMP)
          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 top
          may break this weak affinity and cause more processes to change CPUs
          more often (because of the extra demand for cpu time).

       k: %CPU  --  CPU usage
          The task’s share of the elapsed  CPU  time  since  the  last  screen
          update,  expressed as a percentage of total CPU time.  In a true SMP
          environment, if ’Irix mode’ is Off, top  will  operate  in  ’Solaris
          mode’  where  a task’s cpu usage will be divided by the total number
          of CPUs.  You toggle ’Irix/Solaris’ modes with the  ’I’  interactive
          command.

       l: TIME  --  CPU Time
          Total CPU time the task has used since it started.  When ’Cumulative
          mode’ is On, each process is listed with the cpu time  that  it  and
          its  dead children has used.  You toggle ’Cumulative mode’ with ’S’,
          which is a command-line option and an interactive command.  See  the
          ’S’  interactive  command  for additional information regarding this
          mode.

       m: TIME+  --  CPU Time, hundredths
          The  same  as  ’TIME’,  but  reflecting  more  granularity   through
          hundredths of a second.

       n: %MEM  --  Memory usage (RES)
          A task’s currently used share of available physical memory.

       o: VIRT  --  Virtual Image (kb)
          The  total  amount  of virtual memory 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.

       p: SWAP  --  Swapped size (kb)
          Memory  that  is  not  resident  but  is present in a task.  This is
          memory that has been swapped out but could include  additional  non-
          resident  memory.  This column is calculated by subtracting physical
          memory from virtual memory.

       q: RES  --  Resident size (kb)
          The non-swapped physical memory a task has used.

       r: CODE  --  Code size (kb)
          The amount of virtual memory devoted to executable code, also  known
          as the ’text resident set’ size or TRS.

       s: DATA  --  Data+Stack size (kb)
          The  amount of virtual memory devoted to other than executable code,
          also known as the ’data resident set’ size or DRS.

       t: SHR  --  Shared Mem size (kb)
          The amount of shared memory used by  a  task.   It  simply  reflects
          memory that could be potentially shared with other processes.

       u: nFLT  --  Page Fault count
          The  number  of  major 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 backing storage access (such as a disk)  is
          involved in making that page available.

       v: nDRT  --  Dirty Pages count
          The  number  of  pages  that have been modified since they were last
          written to disk.  Dirty pages must be written  to  disk  before  the
          corresponding  physical  memory  location can be used for some other
          virtual page.

       w: S  --  Process Status
          The status of the task which can be one of:
             ’D’ = uninterruptible sleep
             ’R’ = running
             ’S’ = sleeping
             ’T’ = traced or stopped
             ’Z’ = zombie

          Tasks shown as running should be more properly thought of as  ’ready
          to  run’   --   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  top’s delay interval and nice
          value.

       x: Command  --  Command line or Program name
          Display the command line used to start a task or  the  name  of  the
          associated  program.   You toggle between command line and name with
          ’c’, which is both a command-line option and an interactive command.

          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 parentheses, as in this example:
                ( mdrecoveryd )

          Either  form  of  display is subject to potential truncation if it’s
          too long to fit in this field’s current width.  That  width  depends
          upon  other  fields  selected,  their  order  and the current screen
          width.

          Note: The ’Command’ field/column is unique, in that it is not fixed-
          width.   When displayed, this column will be allocated all remaining
          screen width (up to the maximum 512 characters) to provide  for  the
          potential growth of program names into command lines.

       y: WCHAN  --  Sleeping in Function
          Depending on the availability of the kernel link map (’System.map’),
          this field will show the name or the address of the kernel  function
          in which the task is currently sleeping.  Running tasks will display
          a dash (’-’) in this column.

          Note: By displaying this  field,  top’s  own  working  set  will  be
          increased  by over 700Kb.  Your only means of reducing that overhead
          will be to stop and restart top.

       z: Flags  --  Task Flags
          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>.   Less  formal
          documentation  can  also  be found on the ’Fields select’ and ’Order
          fields’ screens.

   2b. SELECTING and ORDERING Columns
       After pressing the interactive commands  ’f’  (Fields  select)  or  ’o’
       (Order fields) you will be shown a screen containing the current fields
       string followed by names and descriptions for all fields.

       Here is a sample fields string from one  of  top’s  four  windows/field
       groups and an explanation of the conventions used:

       -  Sample fields string:
             ANOPQRSTUVXbcdefgjlmyzWHIK

       -  The  order  of  displayed  fields  corresponds  to  the order of the
          letters in that string.

       -  If the letter is upper case the corresponding field itself will then
          be  shown  as  part  of  the task display (screen width permitting).
          This will also be indicated by a leading asterisk (’*’), as in  this
          excerpt:
              ...
              * K: %CPU       = CPU usage
                l: TIME       = CPU Time
                m: TIME+      = CPU Time, hundredths
              * N: %MEM       = Memory usage (RES)
              * O: VIRT       = Virtual Image (kb)
              ...

       Fields select screen  --  the ’f’ interactive command
          You   toggle   the  display  of  a  field  by  simply  pressing  the
          corresponding letter.

       Order fields screen  --  the ’o’ interactive command
          You move a field to the left by  pressing  the  corresponding  upper
          case letter and to the right with the lower case letter.

   2c. CPU States
       The  CPU states are shown in the Summary Area. They are always shown as
       a percentage and are for the time between now and the last refresh.

        us  --  User CPU time
          The time the CPU has spent running users’  processes  that  are  not
          niced.

        sy  --  System CPU time
          The time the CPU has spent running the kernel and its processes.

        ni  --  Nice CPU time
          The  time  the  CPU has spent running users’ proccess that have been
          niced.

        wa  --  iowait
          Amount of time the CPU has been waiting for I/O to complete.

        hi  --  Hardware IRQ
          The amount of time the CPU has been servicing hardware interrupts.

        si  --  Software Interrupts
          The amount of time the CPU has been servicing software interrupts.

        st  --  Steal Time
          The amount  of  CPU  ’stolen’  from  this  virtual  machine  by  the
          hypervisor   for  other  tasks  (such  as  running  another  virtual
          machine).

3. INTERACTIVE Commands

       Listed below is a brief index  of  commands  within  categories.   Some
       commands  appear  more  than  once  --  their meaning or scope may vary
       depending on the context in which they are issued.

         3a. GLOBAL_Commands
               <Ret/Sp> ?, =, A, B, d, G, h, I, k, q, r, s, W, Z
         3b. SUMMARY_Area_Commands
               l, m, t, 1
         3c. TASK_Area_Commands
               Appearance:  b, x, y, z
               Content:     c, f, H, o, S, u
               Size:        #, i, n
               Sorting:     <, >, F, O, R
         3d. COLOR_Mapping
               <Ret>, a, B, b, H, M, q, S, T, w, z, 0 - 7
         4b. COMMANDS_for_Windows
               -, _, =, +, A, a, G, g, w

   3a. GLOBAL Commands
       The  global  interactive  commands  are  always   available   in   both
       full-screen  mode  and  alternate-display mode.  However, some of these
       interactive commands are not available when running in ’Secure mode’.

       If you wish to know in  advance  whether  or  not  your  top  has  been
       secured,  simply ask for help and view the system summary on the second
       line.

         <Enter> or <Space> :Refresh_Display
              These commands do nothing, they are  simply  ignored.   However,
              they  will  awaken  top  and  following receipt of any input the
              entire display will be repainted.

              Use either of these keys if you have a large delay interval  and
              wish to see current status,

         <?> or <h> :Help
              There  are  two help levels available.  The first will provide a
              reminder of all the  basic  interactive  commands.   If  top  is
              secured, that screen will be abbreviated.

              Typing  ’h’ or ’?’ on that help screen will take you to help for
              those interactive commands applicable to alternate-display mode.

         <=> :Exit_Task_Limits
              Removes  restrictions  on  which  tasks are shown.  This command
              will reverse any ’i’ (idle tasks) and ’n’ (max  tasks)  commands
              that  might  be active.  It also provides for an ’exit’ from PID
              monitoring.  See the ’-p’ command-line option for  a  discussion
              of PID monitoring.

              When  operating  in  alternate-display  mode  this command has a
              slightly broader meaning.

         <A> :Alternate_Display_Mode_toggle
              This  command  will  switch   between   full-screen   mode   and
              alternate-display mode.  See topic 4. ALTERNATE-DISPLAY Mode and
              the ’G’ interactive command for insight into  ´current’  windows
              and field groups.

         <B> :Bold_Disable/Enable_toggle
              This   command   will  influence  use  of  the  ’bold’  terminfo
              capability and alters both the summary area and  task  area  for
              the  ´current’  window.   While it is intended primarily for use
              with dumb terminals, it can be applied anytime.

              Note: When this toggle is On and top is operating in  monochrome
              mode,  the  entire  display  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.

       * <d> or <s> :Change_Delay_Time_interval
              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  top’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.

         <G> :Choose_Another_Window/Field_Group
              You will  be  prompted  to  enter  a  number  between  1  and  4
              designating  the  window/field  group  which  should be made the
              ´current’ window.  You will soon grow comfortable with  these  4
              windows,  especially  after experimenting with alternate-display
              mode.

         <I> :Irix/Solaris_Mode_toggle
              When operating in ’Solaris mode’ (’I’ toggled Off), a task’s cpu
              usage  will  be  divided  by  the  total  number of CPUs.  After
              issuing this command, you’ll be informed of  the  new  state  of
              this toggle.

         <u> :select a user
              You  will  be  prompted  for  a  UID or username. Only processes
              belonging to the selected user will be  displayed.  This  option
              matches on the effective UID.

         <U> :select a user
              You  will  be  prompted  for  a  UID or username. Only processes
              belonging to the selected user will be  displayed.  This  option
              matches on the real, effective, saved, and filesystem UID.

       * <k> :Kill_a_task
              You will be prompted for a PID and then the signal to send.  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:
                 1) at the pid prompt, just press <Enter>
                 2) at the signal prompt, type 0

         <q> :Quit

       * <r> :Renice_a_Task
              You will be prompted for a PID and then the value to nice it to.
              Entering a positive value will cause a process to lose priority.
              Conversely, a negative value will cause a process to  be  viewed
              more favorably by the kernel.

         <W> :Write_the_Configuration_File
              This  will save all of your options and toggles plus the current
              display mode and delay  time.   By  issuing  this  command  just
              before  quitting  top, you will be able restart later in exactly
              that same state.

         <Z> :Change_Color_Mapping
              This key will take you to a separate screen where you can change
              the  colors  for  the ´current’ window, or for all windows.  For
              details regarding this interactive command see topic  3d.  COLOR
              Mapping.

       *  The  commands  shown  with  an  asterisk  (’*’) are not available in
          ’Secure mode’, nor will they be shown on the level-1 help screen.

   3b. SUMMARY Area Commands
       The summary area interactive commands  are  always  available  in  both
       full-screen mode and alternate-display mode.  They affect the beginning
       lines of your display and will determine the position of  messages  and
       prompts.

       These  commands  always  impact  just the ´current’ window/field group.
       See topic 4. ALTERNATE-DISPLAY Mode and the ’G’ interactive command for
       insight into ´current’ windows and field groups.

         <l> :Toggle_Load_Average/Uptime  --  On/Off
              This  is  also the line containing the program name (possibly an
              alias) when operating  in  full-screen  mode  or  the  ´current’
              window name when operating in alternate-display mode.

         <m> :Toggle_Memory/Swap_Usage  --  On/Off
              This command affects two summary area lines.

         <t> :Toggle_Task/Cpu_States  --  On/Off
              This  command  affects  from  2  to  many  summary  area  lines,
              depending on the state of the ’1’ toggle and whether or not  top
              is running under true SMP.

         <1> :Toggle_Single/Separate_Cpu_States  --  On/Off
              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 summary area, the ’1’ toggle is On
              and   all   cpu  information  is  gathered  in  a  single  line.
              Otherwise, each cpu is displayed  separately  as:  ’Cpu0,  Cpu1,
              ...’

       Note:  If  the entire summary area has been toggled Off for any window,
       you would be left with just the message line.  In that  way,  you  will
       have  maximized  available  task  rows but (temporarily) sacrificed the
       program name in full-screen mode or the ´current’ window name  when  in
       alternate-display mode.

   3c. TASK Area Commands
       The  task area interactive commands are always available in full-screen
       mode.

       The  task  area   interactive   commands   are   never   available   in
       alternate-display  mode if the ´current’ window’s task display has been
       toggled Off (see topic 4. ALTERNATE-DISPLAY Mode).

       APPEARANCE of task window
         The following commands will also be influenced by the  state  of  the
         global ’B’ (bold disable) toggle.

         <b> :Bold/Reverse_toggle
              This  command  will  impact  how  the  ’x’  and  ’y’ toggles are
              displayed.  Further, it will only be available when at least one
              of those toggles is On.

         <x> :Column_Highlight_toggle
              Changes  highlighting  for the current sort field.  You probably
              don’t need a constant visual reminder of the sort field and  top
              hopes  that  you  always run with ’column highlight’ Off, due to
              the cost in path-length.

              If you forget which field is being sorted this command can serve
              as a quick visual reminder.

         <y> :Row_Highlight_toggle
              Changes   highlighting  for  "running"  tasks.   For  additional
              insight into this task state,  see  topic  2a.  DESCRIPTIONS  of
              Fields, 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.

         <z> :Color/Monochrome_toggle
              Switches  the  ´current’  window  between  your  last used color
              scheme and the older form of black-on-white  or  white-on-black.
              This  command will alter both the summary area and task area but
              does not affect the state of the ’x’, ’y’ or ’b’ toggles.

       CONTENT of task window
         <c> :Command_Line/Program_Name_toggle
              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.

         <f> and <o> :Fields_select or Order_fields
              These keys display separate screens where you can  change  which
              fields   are   displayed   and   their  order.   For  additional
              information  on  these  interactive  commands  see   topic   2b.
              SELECTING and ORDERING Columns.

         <S> :Cumulative_Time_Mode_toggle
              When   this  toggle  is  On,  all  individual  threads  will  be
              displayed.  Otherwise, top displays a summation of  all  threads
              in a process.

         ´S´ :Cumulative_Time_Mode_toggle
              When  ’Cumulative  mode’  is On, each process is listed with the
              cpu time that it and its dead children have used.

              When Off, 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 task windows 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.

         <u> :Show_Specific_User_Only
              You will be prompted to enter the name of the user  to  display.
              Thereafter,  in that task window only matching User ID’s will be
              shown, or possibly no tasks will be shown.

              Later, if you wish to monitor all  tasks  again,  re-issue  this
              command  but just press <Enter> at the prompt, without providing
              a name.

       SIZE of task window
         <i> :Idle_Processes_toggle
              Displays all tasks or just active tasks.  When  this  toggle  is
              Off, idled or zombied processes will not be displayed.

              If  this  command  is  applied  to the last task display when in
              alternate-display mode, then it will  not  affect  the  window’s
              size, as all prior task displays will have already been painted.

         <n> or <#> :Set_Maximum_Tasks
              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 alternate-display mode, this is  the  command  that
              gives  you  precise  control  over  the  size  of each currently
              visible task display, except for the very  last.   It  will  not
              affect  the  last window’s size, as all prior task displays will
              have already been painted.

              Note: If you wish to increase the size of the last visible  task
              display when in alternate-display mode, simply decrease the size
              of the task display(s) above it.

       SORTING of task window
         For compatibility, this top supports most  of  the  former  top  sort
         keys.   Since  this is primarily a service to former top users, these
         commands do not appear on any help screen.
            command   sorted field                  supported
              A         start time (non-display)      No
              M         %MEM                          Yes
              N         PID                           Yes
              P         %CPU                          Yes
              T         TIME+                         Yes

         Before using any of the following sort provisions, top suggests  that
         you temporarily turn on column highlighting using the ’x’ interactive
         command.  That will help ensure  that  the  actual  sort  environment
         matches your intent.

         The  following  interactive  commands  will  only be honored when the
         current sort field is visible.  The sort field might not  be  visible
         because:
              1) there is insufficient Screen Width
              2) the ’f’ interactive command turned it Off

         <<> :Move_Sort_Field_Left
              Moves  the sort column to the left unless the current sort field
              is the first field being displayed.

         <>> :Move_Sort_Field_Right
              Moves the sort column to the right unless the current sort field
              is the last field being displayed.

         The  following interactive commands will always be honored whether or
         not the current sort field is visible.

         <F> or <O> :Select_Sort_Field
              These keys display a separate screen where you can change  which
              field is used as the sort column.

              If a field is selected which was not previously being displayed,
              it will be forced  On  when  you  return  to  the  top  display.
              However,  depending upon your screen width and the order of your
              fields, this sort field may not be displayable.

              This interactive command can  be  a  convenient  way  to  simply
              verify  the  current  sort  field,  when running top with column
              highlighting turned Off.

         <R> :Reverse/Normal_Sort_Field_toggle
              Using this interactive command you can alternate  between  high-
              to-low and low-to-high sorts.

         Note:  Field  sorting  uses  internal  values,  not  those  in column
         display.  Thus, the TTY and WCHAN fields will  violate  strict  ASCII
         collating sequence.

   3d. COLOR Mapping
       When  you issue the ’Z’ interactive command, you will be presented with
       a separate screen.  That screen can be used to  change  the  colors  in
       just  the  ´current’  window or in all four windows before returning to
       the top display.

       Available interactive commands
           4 upper case letters to select a target
           8 numbers to select a color
           normal toggles available
               ’B’       :bold disable/enable
               ’b’       :running tasks "bold"/reverse
               ’z’       :color/mono
           other commands available
               ’a’/’w’   :apply, then go to next/prior
               <Enter>   :apply and exit
               ’q’       :abandon current changes and exit

       If your 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 Off completely with the ’z’ toggle.

       The  Color  Mapping  screen  can  also  be used to change the ´current’
       window/field group in  either  full-screen  mode  or  alternate-display
       mode.   Whatever  was  targeted when ’q’ or <Enter> was pressed will be
       made current as you return to the top display.

4. ALTERNATE-DISPLAY Mode

   4a. WINDOWS Overview
       Field Groups/Windows:
              In full-screen mode there is a single window represented by  the
              entire  screen.   That  single  window  can  still be changed to
              display 1 of 4 different field groups (see the  ’G’  interactive
              command,  repeated  below).   Each  of  the 4 field groups has a
              unique  separately  configurable  summary  area  and   its   own
              configurable task area.

              In  alternate-display  mode, those 4 underlying field groups can
              now be  made  visible  simultaneously,  or  can  be  turned  Off
              individually at your command.

              The  summary  area  will  always  exist,  even  if it’s only the
              message line.  At any given time only one summary  area  can  be
              displayed.   However, depending on your commands, there could be
              from zero to four separate task displays  currently  showing  on
              the screen.

       Current Window:
              The  ´current’  window is the window associated with the summary
              area and the window to which task related  commands  are  always
              directed.   Since  in  alternate-display mode you can toggle the
              task display Off, some commands  might  be  restricted  for  the
              ´current’ window.

              A  further  complication  arises when you have toggled the first
              summary area line Off.  With the loss of the  window  name  (the
              ’l’  toggled  line),  you’ll  not easily know what window is the
              ´current’ window.

   4b. COMMANDS for Windows
         <-> and <_> :Show/Hide_Window(s)_toggles
              The ’-’ key turns the ´current’ window’s  task  display  On  and
              Off.  When On, that task area will show a minimum of the columns
              header you’ve established with the ’f’  and  ’o’  commands.   It
              will  also  reflect  any  other task area options/toggles you’ve
              applied yielding zero or more tasks.

              The ’_’ key does the same  for  all  task  displays.   In  other
              words, it switches between the currently visible task display(s)
              and any task display(s) you had toggled  Off.   If  all  4  task
              displays  are  currently  visible, this interactive command will
              leave the summary area as the only display element.

       * <=> and <+> :Equalize_(re-balance)_Window(s)
              The ’=’ key forces the ´current’ window’s  task  display  to  be
              visible.   It  also  reverses  any ’i’ (idle tasks) and ’n’ (max
              tasks) commands that might be active.

              The ’+’ key does the  same  for  all  windows.   The  four  task
              displays  will  reappear,  evenly balanced.  They will also have
              retained any customizations you had previously  applied,  except
              for the ’i’ (idle tasks) and ’n’ (max tasks) commands.

       * <A> :Alternate_Display_Mode_toggle
              This   command   will   switch   between  full-screen  mode  and
              alternate-display mode.

              The first time you issue this command, all  four  task  displays
              will  be  shown.  Thereafter when you switch modes, you will see
              only the task display(s) you’ve chosen to make visible.

       * <a> and <w> :Next_Window_Forward/Backward
              This will change the ´current’ window, which in turn changes the
              window  to  which  commands  are  directed.  These keys act in a
              circular fashion so you can reach any desired  ´current’  window
              using either key.

              Assuming  the  window  name is visible (you have not toggled ’l’
              Off),   whenever   the   ´current’   window   name   loses   its
              emphasis/color,  that’s  a  reminder the task display is Off and
              many commands will be restricted.

       * <G> :Choose_Another_Window/Field_Group
              You will  be  prompted  to  enter  a  number  between  1  and  4
              designating  the  window/field  group  which  should be made the
              ´current’ window.

              In full-screen mode, this command  is  necessary  to  alter  the
              ´current’  window.   In  alternate-display  mode, it is simply a
              less convenient alternative to the ’a’ and ’w’ commands.

         <g> :Change_Window/Field_Group_Name
              You will be prompted for  a  new  name  to  be  applied  to  the
              ´current’  window.   It does not require that the window name be
              visible (the ’l’ toggle to be On).

       *  The interactive commands shown  with  an  asterisk  (’*’)  have  use
          beyond alternate-display mode.
              ’=’, ’A’, ’G’  are always available
              ’a’, ’w’       act the same when color mapping

5. FILES

   5a. SYSTEM Configuration 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 top is running.  They will
       not be able to issue the following commands.
          k         Kill a task
          r         Renice a task
          d or s    Change delay/sleep interval

       The system configuration file is  not  created  by  top.   Rather,  you
       create this file manually and place it in the /etc directory.  Its name
       must be ’toprc’ and must have no leading ’.’ (period).   It  must  have
       only two lines.

       Here is an example of the contents of /etc/toprc:
          s         # line 1: ’secure’ mode switch
          5.0       # line 2: ’delay’  interval in seconds

   5b. PERSONAL Configuration File
       This  file  is written as ’$HOME/.your-name-4-top’ + ’rc’.  Use the ’W’
       interactive command to create it or update it.

       Here is the general layout:
          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
            "       # line c: summclr,msgsclr,headclr,taskclr

       If the $HOME variable is  not  present,  top  will  try  to  write  the
       personal  configuration  file  to  the  current  directory,  subject to
       permissions.

6. STUPID TRICKS Sampler

       Many of these ’tricks’ work best when you give top a scheduling  boost.
       So  plan  on starting him with a nice value of -10, assuming you’ve got
       the authority.

   6a. Kernel Magic
       For these stupid tricks, top needs full-screen mode.

       -*-  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:
              . provide a scheduling boost and tiny delay via:
                  nice -n -10 top -d.09
              . keep sorted column highlighting Off to minimize
                path length
              . turn On 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

            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.

       -*-  Under an xterm using ’white-on-black’ colors,  try  setting  top’s
            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.

       -*-  Delete the existing rcfile, or create a new symlink.   Start  this
            new  version  then type ’T’ (a secret key, see topic 3c. 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 top, a 300%  speed  advantage.   As  top  climbs  the  TIME
            ladder,  be  as patient as you can while speculating on whether or
            not top will ever reach the top.

   6b. Bouncing Windows
       For these stupid tricks, top needs alternate-display mode.

       -*-  With 3 or 4 task displays visible, pick any window other than  the
            last  and turn idle processes Off.  Depending on where you applied
            ’i’, sometimes several task displays are  bouncing  and  sometimes
            it’s like an accordion, as top tries his best to allocate space.

       -*-  Set  each  window’s summary lines differently: one with no memory;
            another with no states; maybe one with nothing at  all,  just  the
            message  line.  Then hold down ’a’ or ’w’ and watch a variation on
            bouncing windows  --  hopping windows.

       -*-  Display all 4 windows and for each, in turn, set idle processes to
            Off.  You’ve just entered the "extreme bounce" zone.

   6c. The Big Bird Window
       This stupid trick also requires alternate-display mode.

       -*-  Display  all  4  windows and make sure that 1:Def is the ´current’
            window.  Then, keep increasing window size until the all the other
            task displays are "pushed out of the nest".

            When    they’ve   all   been   displaced,   toggle   between   all
            visible/invisible windows.  Then ponder this:
               is top fibbing or telling honestly your imposed truth?

7. BUGS

       Send bug reports to:
          Albert D. Cahalan, <albert@users.sf.net>

8. HISTORY Former top

       The  original  top  was  written  by  Roger  Binns,  based  on   Branko
       Lankester’s <lankeste@fwi.uva.nl> ps program.

       Robert  Nation  <nation@rocket.sanders.lockheed.com> adapted it for the
       proc file system.

       Helmut Geyer  <Helmut.Geyer@iwr.uni-heidelberg.de>  added  support  for
       configurable fields.

       Plus many other individuals contributed over the years.

9. AUTHOR

       This entirely new and enhanced replacement was written by:
          Jim / James C. Warner, <warnerjc@worldnet.att.net>

       With invaluable help from:
          Albert D. Cahalan, <albert@users.sf.net>
          Craig Small, <csmall@small.dropbear.id.au>

10. SEE ALSO

       free(1), ps(1), uptime(1), atop(1), slabtop(1), vmstat(8), w(1).