Process monitoring tools – top, iostat, and vmstat

We can view the native performance of various processes in OS using tools which will be discussed further. To view a dynamic real-time view of the top running processes in OS, use the following command:

$top

An explanation of the top command generated output is as follows:

The $top command displays a lot of information about the running system.

The first line of the display is shown as follows:

The description of fields in the first line is as follows:

  • Current time
  • System uptime
  • Number of users logged in
  • Load average of 5, 10, and 15 minutes, respectively

The second line is shown as follows:

This line shows the summary of tasks or processes. It shows the total number of all the processes, which includes the total number of running, sleeping, stopped, and zombie processes.

The third line is shown as follows:

This line shows information about CPU usage in % in different modes as follows:

  • * us (user): CPU usage in % for running (un-niced) the user processes
  • * sy (system): CPU usage in % for running the kernel processes
  • * ni (niced): CPU usage in % for running the niced user processes
  • * wa (IO wait): CPU usage in % for waiting for the IO completion
  • * hi (hardware interrupts): CPU usage in % for serving hardware interrupts
  • * si (software interrupts): CPU usage in % for serving software interrupts
  • * st (time stolen): CPU usage in % for time stolen for this vm by the hypervisor

The fourth line is shown as follows:

This line provides information about memory usage. It shows the physical memory that is used, free, available, and used for buffers. The next line shows the swap memory that is available, used, free, and cached.

After this line, we see the table of values with the following columns:

  • PID: This is the ID of the process
  • USER: This is the user that is the owner of the process
  • PR: This is the priority of the process
  • NI: This is the "NICE" value of the process
  • VIRT: This is the virtual memory used by the process
  • RES: This is the physical memory used for the process
  • SHR: This is the shared memory of the process
  • S: This indicates the status of the process: S=sleep, R=running, and Z=zombie (S)
  • %CPU: This is the % of CPU used by this process
  • %MEM: This is the % of RAM used by the process
  • TIME+: This is the total time of activity of this process
  • COMMAND: This is the name of the process

Let's take a look at the performance monitoring tools—iostat, vmstat, and sar:

  • To view the statistics of the CPU and the input/output device's utilization, use the following command:
    $ iostat
    
    $ iostat –c
    

    Shows only CPU statistics

    $ iostat –d
    

    Shows only disk statistics

  • To view the virtual memory statistics, use the following command:
    $vmstat
    
    $ vmstat -s
    

    This shows various event counters and memory statistics.

    $ vmstat –t 1 5
    

    Runs for every one second stops after executing for five intervals.

    $ sar –u 2 3
    

    This will show the CPU activity report every 2 seconds, 3 times: