How to Check Linux CPU Usage or Utilization (2024)

Monitoring the performance of the CPU is an essential task for any system administrator who needs to measure the performance of a system. This will help you to debug system processes, manage system resources, and make system decisions. There are several tools available for checking CPU usage in Linux.

In this post, we will demonstrate a few methods to check and monitor CPU usage in Linux. NOTE: This article assumes that your base system is updated with the latest available packages.

In This Article

  • Check CPU Usage with top Command
  • Check CPU Usage with mpstat Command
  • Check CPU Usage with sar Command
  • Check CPU Usage with iostat Command
  • Check CPU Usage with vmstat Command

1. Check CPU Usage with top Command

Top is a very useful command-line tool that helps you to monitor all running processes in real-time. It will display information about the readout of users, tasks, CPU load, and memory usage in real-time. By default, the top command updates the data every 5 seconds.

Now, let’s start using the top command to monitor the CPU usage:

top

You should see the all running processes on the following screen:
How to Check Linux CPU Usage or Utilization (1)
Type P to sort all running processes by CPU usage. You should see the following screen:
How to Check Linux CPU Usage or Utilization (2)
Type M to sort all running processes by Memory usage. You should see the following screen:
How to Check Linux CPU Usage or Utilization (3)
Type I to hide all idle processes. You should see the following screen:
How to Check Linux CPU Usage or Utilization (4)
Type S to sort all processes by how long the processes have been running:
How to Check Linux CPU Usage or Utilization (5)
Type U to view all processes owned by a specific user. You should see the following screen:
How to Check Linux CPU Usage or Utilization (6)

2. Check CPU Usage with mpstat Command

Mpstat is a part of the sysstat package.

For Debian or Ubuntu operating systems, you can install it using the following command:

apt-get install sysstat -y

For CentOS or RHEL operating systems, you can install it using the following command:

yum install sysstat -y

Now, run the mpstat command without any options. This will display usage for each processor:

mpstat

Sample output:

Linux 4.4.0-148-generic (newpc) Monday 23 August 2021 _x86_64_(4 CPU)12:28:46 IST CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle12:28:46 IST all 18.30 0.01 3.44 8.26 0.00 0.16 0.00 0.00 0.00 69.82

To display a report for the first processor, run:

mpstat -P 0

Sample output:

Linux 4.4.0-148-generic (newpc) Monday 23 August 2021 _x86_64_(4 CPU)12:29:35 IST CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle12:29:35 IST 0 18.16 0.01 3.94 8.68 0.00 0.27 0.00 0.00 0.00 68.93

To display the report of all processors, run:

mpstat -P ALL

Sample output:

Linux 4.4.0-148-generic (newpc) Monday 23 August 2021 _x86_64_(4 CPU)12:45:50 IST CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle12:45:50 IST all 16.38 0.01 3.11 7.33 0.00 0.15 0.00 0.00 0.00 73.0212:45:50 IST 0 16.28 0.01 3.58 7.76 0.00 0.25 0.00 0.00 0.00 72.1212:45:50 IST 1 16.25 0.01 3.06 7.10 0.00 0.05 0.00 0.00 0.00 73.5212:45:50 IST 2 16.38 0.01 2.87 7.39 0.00 0.24 0.00 0.00 0.00 73.1112:45:50 IST 3 16.60 0.01 2.93 7.07 0.00 0.06 0.00 0.00 0.00 73.34

To display average CPU usage for 3 times at 2-second intervals:

mpstat -P ALL 2 3

Sample output:

See Also
FAQ

Linux 4.4.0-148-generic (newpc) Monday 23 August 2021 _x86_64_(4 CPU)12:47:58 IST CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle12:48:00 IST all 23.30 0.00 4.99 4.74 0.00 0.00 0.00 0.00 0.00 66.9712:48:00 IST 0 29.02 0.00 5.18 6.74 0.00 0.00 0.00 0.00 0.00 59.0712:48:00 IST 1 26.53 0.00 6.12 4.59 0.00 0.51 0.00 0.00 0.00 62.2412:48:00 IST 2 22.96 0.00 3.57 2.04 0.00 0.00 0.00 0.00 0.00 71.4312:48:00 IST 3 14.14 0.00 5.05 5.56 0.00 0.00 0.00 0.00 0.00 75.2512:48:00 IST CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle12:48:02 IST all 21.58 0.00 5.87 5.11 0.00 0.13 0.00 0.00 0.00 67.3112:48:02 IST 0 25.13 0.00 9.23 9.23 0.00 0.51 0.00 0.00 0.00 55.9012:48:02 IST 1 28.72 0.00 7.18 8.21 0.00 0.00 0.00 0.00 0.00 55.9012:48:02 IST 2 18.88 0.00 3.06 1.53 0.00 0.00 0.00 0.00 0.00 76.5312:48:02 IST 3 13.85 0.00 4.10 1.03 0.00 0.00 0.00 0.00 0.00 81.0312:48:02 IST CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle12:48:04 IST all 24.78 0.00 5.11 5.87 0.00 0.13 0.00 0.00 0.00 64.1112:48:04 IST 0 30.37 0.00 3.66 10.47 0.00 0.00 0.00 0.00 0.00 55.5012:48:04 IST 1 27.78 0.00 6.06 9.09 0.00 0.00 0.00 0.00 0.00 57.0712:48:04 IST 2 23.23 0.00 5.56 1.01 0.00 0.00 0.00 0.00 0.00 70.2012:48:04 IST 3 17.86 0.00 5.10 3.57 0.00 0.51 0.00 0.00 0.00 72.96Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idleAverage: all 23.22 0.00 5.33 5.24 0.00 0.09 0.00 0.00 0.00 66.13Average: 0 28.15 0.00 6.04 8.81 0.00 0.17 0.00 0.00 0.00 56.82Average: 1 27.67 0.00 6.45 7.30 0.00 0.17 0.00 0.00 0.00 58.40Average: 2 21.69 0.00 4.07 1.53 0.00 0.00 0.00 0.00 0.00 72.71Average: 3 15.28 0.00 4.75 3.40 0.00 0.17 0.00 0.00 0.00 76.40

3. Check CPU Usage with sar Command

The sar command is also used for collecting and reporting system activity information.

You can use the sar command with the -u option to track CPU performance. The following command will display CPU usage every 2 seconds.

sar -u 2

Sample output:

Linux 4.4.0-148-generic (newpc) Monday 23 August 2021 _x86_64_(4 CPU)12:53:26 IST CPU %user %nice %system %iowait %steal %idle12:53:28 IST all 5.30 0.00 2.02 2.52 0.00 90.1612:53:30 IST all 2.90 0.00 1.39 1.13 0.00 94.5812:53:32 IST all 3.57 0.00 2.04 0.76 0.00 93.63

The above command will run indefinitely. You can stop it using CTRL+C.

4. Check CPU Usage with iostat Command

The iostat displays information on device utilization and the system’s average CPU utilization since the last reboot.

Run the iostat command without any option will display the information about CPU utilization, device utilization, and network file system utilization.

iostat

You should see the following output:

Linux 4.4.0-148-generic (newpc) Monday 23 August 2021 _x86_64_(4 CPU)avg-cpu: %user %nice %system %iowait %steal %idle 16.41 0.01 3.31 6.83 0.00 73.44Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtnloop0 0.01 0.04 0.00 373 0loop1 0.01 0.04 0.00 387 0loop2 2.59 2.62 0.00 23279 0loop3 0.00 0.01 0.00 116 0loop4 0.01 0.02 0.00 143 0loop5 28.67 28.70 0.00 255344 0loop6 0.01 0.04 0.00 385 0loop7 0.00 0.01 0.00 121 0sda 34.36 383.67 600.72 3413776 5345096

Use the -c option to break the CPU utilization into user processes, system processes, I/O wait, and idle time.

iostat -c

Sample output:

Linux 4.4.0-148-generic (newpc) Monday 23 August 2021 _x86_64_(4 CPU)avg-cpu: %user %nice %system %iowait %steal %idle 16.40 0.01 3.31 6.82 0.00 73.46

5. Check CPU Usage with vmstat Command

The vmstat command will display the information about system processes, memory, swap, I/O, and CPU performance. It will display the average details since the last reboot.

Run the vmstat command without any options as shown below:

vmstat

Sample output:

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 3 1 1028672 130972 124344 1212276 19 71 101 150 341 818 17 3 73 7 0

The following command will update vmstat report every 2 seconds:

vmstat 2

Sample output:

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 2 1 1032572 233396 125196 1129256 19 70 100 149 345 830 17 3 73 7 0 2 0 1032572 232976 125212 1129596 0 0 0 112 3051 8697 40 10 42 8 0 0 1 1032572 233040 125224 1130468 0 0 0 1510 3109 8631 43 9 41 8 0

Press CTRL+C to close the vmstat.

Conclusion

In the above guide, we explained different methods to check CPU usage in Linux. These tools can help you to track processor usage and the performance of your system. Give it a try today on your VPS from Altantic.Net.

How to Check Linux CPU Usage or Utilization (2024)
Top Articles
Latest Posts
Article information

Author: Jerrold Considine

Last Updated:

Views: 6611

Rating: 4.8 / 5 (78 voted)

Reviews: 85% of readers found this page helpful

Author information

Name: Jerrold Considine

Birthday: 1993-11-03

Address: Suite 447 3463 Marybelle Circles, New Marlin, AL 20765

Phone: +5816749283868

Job: Sales Executive

Hobby: Air sports, Sand art, Electronics, LARPing, Baseball, Book restoration, Puzzles

Introduction: My name is Jerrold Considine, I am a combative, cheerful, encouraging, happy, enthusiastic, funny, kind person who loves writing and wants to share my knowledge and understanding with you.