How do you list the top CPU consuming process in Linux?

Many times such situations come in Linux where we have to deal with application unresponsiveness or sluggish applications due to CPU usage. This happens when our Linux system CPU is very busy. Most of the time, it has to wait until the CPU is free and queue up to process its pending requests.

Whenever the CPU is completely occupied by the processes of the Linux system, it becomes difficult for the CPU to process other requests. All remaining requests have to be stopped until the CPU is freed. This becomes a huge obstacle.

We have to use the appropriate command to know the processes which are affecting the CPU. In this article, we will tell how we can solve CPU-related problems with the help of the following commands, as well as see how to find those processes which are using most CPU Linux.

Finding CPU usage is a very important task. Linux comes with several utilities to report CPU usage.

  1. CPU usage
  2. Provide an overview of each CPU’s utilization (SMP CPUs)
  3. How much CPU has been used since your last reboot
  4. Determine what’s consuming the CPU (or CPUs)

We have many such ways with the help of which we can see the use of CPU in Linux processes.

Top command (Table of Process or TOP)

Everyone uses the top command to monitor Linux systems because it is good and well-known. By top command, the system provides a dynamic overview of the cpu usage. Top command frequently produces an updated list of top command processes. This command shows us how the CPU is using memory and processing power as well as gives information about other running processes.

The top command displays a list of tasks currently managed by the Linux kernel, as well as a complete system summary. This command monitors memory usage, process statistics and CPU usage.

Its top section contains a lot of useful information related to the overall system status, including usage statistics for both swap space and memory, CPU status, process count, load average, uptime, etc.

How do you list the top CPU consuming process in Linux?

This list may change frequently but you can press the Q button to stop the refresh process. We can start apex using the -i switch.

How do you list the top CPU consuming process in Linux?

It hides all inactive processes to make it easier to sort the list. Use the following commands:

  • M: Sort the task list as per the memory used by the system
  • P: Sort tasks based on CPU usage
  • N: Sort tasks according to processes
  • T: Sort task list by run time

By default, this command sorts the top output with CPU usage by updating the top command data every 5 seconds.

For the purpose of further analysis, it is best to have a clear view of top’s output after running it in batch mode. Using the top command, you can find out what the CPU statistics are for Linux.

Top command performs well on multiple CPUs and in true SMP environments, the top number of CPUs. To exit from the top command display, we have to type the q key.

ps Command (Process Status)

PS command displays information about the active running processes on the system. This command provides a snapshot of current processes with detailed information like time command name, process start date, memory usage, CPU usage, user id, username etc.

How do you list the top CPU consuming process in Linux?

This command provides a snapshot of current processes with detailed information like time command name, process start date, memory usage, CPU usage, user id, username etc.

htop Command

The htop command is also similar to the top command, but one of its features is that it allows us to scroll horizontally and vertically and much more.

How do you list the top CPU consuming process in Linux?

Sar Command

With sar command, you can view today’s CPU activity as a utility for managing system resources.

The -u option allows you to track CPU performance, but it is not limited exclusively to CPU usage.

You can print the standard output by the sar command on selected cumulative activity counters in the OS. It gives output based on interval and calculation parameters. For example, 2 seconds apart; 5 times, use:

How do you list the top CPU consuming process in Linux?

Display CPU usage with the –u option. Whenever it displays, it should do so every five seconds. You can cancel this by pressing Ctrl-C.

Here, U12 5 displays the following values of CPU usage.

  • % user: Displaying CPU usage while executing at the application and user level.
  • %nice: Showing CPU usage for the user while an application is running.
  • %system: Displaying CPU usage while executing at the (kernel) system level.
  • %iowait: This measure tracks the amount of idle time over which the system has outstanding disk I/O requests.
  • %idle: It shows the percentage of time when CPUs or CPUs are idle and during which the system did not have outstanding I/O disk requests.

The output file has to be set for multiple reports and multiple samples to get the report from the Sar command. Run this command as a background process.

$ sar -o output.file 12 8 >/dev/null 2>&1 &

How do you list the top CPU consuming process in Linux?

Even after logging out, if we want to see the report back, then we can better use the nohup command.

$ nohup sar -o output.file 12 8 >/dev/null 2>&1 &

How do you list the top CPU consuming process in Linux?

This file contains binary copies of all the data contained in the file. Using the -f option, you can display this data with the sar command.

Find out who is consuming CPUs or monopolizing them. In the end, we determine which process is consuming and monopolizing the CPU. The following commands display the top 10 CPU users on Linux systems.

How do you list the top CPU consuming process in Linux?

How do you list the top CPU consuming process in Linux?

iostat Command

This command is used to find the average usage of the system since the last reboot. By using the iostat command, we report the partitions, devices and data of the CPU (Central Processing Unit).

How do you list the top CPU consuming process in Linux?

If we use the command given below, we will get 3 outputs every 5 seconds.

How do you list the top CPU consuming process in Linux?

vmstat command

With vmstat, you can check CPU, disk, IO, memory, traps, processes, and more. This command goes something like this.

How do you list the top CPU consuming process in Linux?

The percentages represent the time spent on each CPU core.

  • us: Runtime for non-kernel code.
  • sy: Duration of kernel execution.
  • id: The number of idle minutes.
  • wa: Waiting time for I/O.
  • st: Time stolen from a virtual machine.

nmon Command

Nigel Griffiths of IBM developed the monitoring tool Nmon. Follow these instructions to install the monitoring tool Nmon:

$ sudo apt-get install nmon

How do you list the top CPU consuming process in Linux?

Enter the following information to install CentOS:

$ sudo yum epel-release
$ sudo yum install nmon

Launching nmon requires the following command:

How do you list the top CPU consuming process in Linux?

There are different keys for different options as you can see in the image given below:

How do you list the top CPU consuming process in Linux?

How do you list the top CPU consuming process in Linux?

You can press the Q button to exit the tool.

mpstat and Other Tools

To utilize these features we must first install a systat package. Default tools and system performance tools such as RHEL / Red Hat Linux are included in this package for Linux. We can install it on Ubuntu or Debian by the following command:

$ sudo apt-get install sysstat

How do you list the top CPU consuming process in Linux?

To install sysstat for different versions of Linux, we have to use the command according to them.

up2date command for CentOS/RHEL Linux v4.x or older

$ up2date install sysstat

yum command for Oracle/RHEL/CentOS Linux v5.x+ or newer

dnf command for Fedora users

By using mpstat, display the use of each CPU individually. If we use multiple CPU and SMP systems, then we use mpstat command to display the usage of different CPUs. This command provides us with the report of statistics related to the processor.

How do you list the top CPU consuming process in Linux?

Process 0 is the first available processor, and mpstat displays activity for each one. The mpstat command is used on both UP and SMP machines, but the latter will print only the global average of activities.

  • %usr: CPU utilization at the user level
  • %nice: CPU usage for “nice” processes
  • %sys: CPU usage on the kernel (system-level)
  • %iowait: CPU idle while disk read/write occurs
  • %irq: CPU usage during hardware interruptions
  • %soft: Handling software interrupts with CPU usage
  • %steal: CPU usage forced to wait for another virtual processor to finish handling
  • %guest: Processor usage while a virtual processor is running
  • %idle: CPU usage during idle time (no processes running, and no disk read/write waiting)

GUI tools to Find Process Using Most CPU in Linux

The above tool/command is very useful for remote servers. We can try gnome-system-monitor with X GUI for local systems. It lets us monitor and control the system’s processes. Through this, we can terminate processes, send signals, and access memory maps.

How do you list the top CPU consuming process in Linux?

Additionally, gnome-system-monitor shows us an overall view of resource usage on our system including CPU and memory allocation.

How do you list the top CPU consuming process in Linux?

Conclusion

In this article we have given information about many Linux command line tools. Through all these commands, we can see how we can find out the maximum usage of CPU and stop it. Through this, we can stop its usage and move forward the second processing of CPUs.

About the author

A passionate Linux user for personal and professional reasons, always exploring what is new in the world of Linux and sharing with my readers.

How do I get the top CPU consuming process in Linux?

Use ps Command to Find Top Processes by Memory and CPU Usage ps is a Linux command-line utility with many options that helps you to display output in different formats. You can use the ps command with –sort argument to sort the output by memory and CPU usage.

How can I tell which process is consuming high CPU?

Use Task Manager to view CPU consumption to help identify the process or application that's causing high CPU usage:.
Select Start, enter task, and then select Task Manager in the search results..
The Task Manager window defaults to the Processes tab. ... .
Select the CPU column header to sort the list by CPU usage..

How do you sort CPU usage on top?

To sort all running processes by CPU utilization, simply press Shift+P key.

How check CPU utilization for particular process in Linux?

Running the mpstat command on a Linux system will display an output like the one shown in figure 2. This command shows various CPU statistics including idle time, io wait time and steal time. Similar to the top command, the idle time shown here can be used to compute the CPU utilization using the same formula.