What do VIRT, RES and SHR mean in the top command?

  • I've been learning about the top command. There are some terms on which I am confused. I need some clarification.

    screenshot with top

    What are the WA, HI, SI and ST terms in the CPU(s) row, and also VIRT, RES and SHR?

  • atenz

    atenz Correct answer

    8 years ago

    It can be seen from man top in terminal as

    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
       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
       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.

    For CPU

    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
        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
        si  --  Software Interrupts
          The  amount  of  time  the  CPU  has  been  servicing  software
        st  --  Steal Time
          The  amount  of  CPU  'stolen' from this virtual machine by the
          hypervisor for other tasks (such  as  running  another  virtual

License under CC-BY-SA with attribution

Content dated before 6/26/2020 9:53 AM