We are committed to provide service 24 X 7

Deals, Shopping, Training, Tools

Learn how to – How To Check CPU Usage/Utilization in Linux system

Learn how to – How To Check CPU Usage/Utilization in Linux system.

Introduction

Time to time, while you administer servers in your day to day roles, you would wish to check how the CPU of your system is faring especially if you suspect that something might be consuming more than it is supposed to. To be able to do that, there are many Linux tools that can help you inspect how it is performing in real-time.

Before we proceed you can check your cpu details with the lscpu command.

# lscpu
 Architecture:        x86_64
 CPU op-mode(s):      32-bit, 64-bit
 Byte Order:          Little Endian
 CPU(s):              8
 On-line CPU(s) list: 0-7
 Thread(s) per core:  2
 Core(s) per socket:  4
 Socket(s):           1
 Vendor ID:           GenuineIntel
 CPU family:          6
 Model:               142
 Model name:          Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
 Stepping:            10
 CPU MHz:             1992.000
 CPU max MHz:         1992.0000
 BogoMIPS:            3984.00
 Hypervisor vendor:   Windows Subsystem for Linux
 Virtualization type: container
 Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat     pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm pni pclmulqdq est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt aes xsave osxsave avx f16c rdrand hypervisor 

Second output from a Virtual Machine:

$ lscpu
 Architecture:            x86_64
  CPU op-mode(s):        32-bit, 64-bit
  Address sizes:         40 bits physical, 48 bits virtual
  Byte Order:            Little Endian
CPU(s):                  2
  On-line CPU(s) list:   0,1
Vendor ID:               GenuineIntel
  Model name:            Intel Xeon Processor (Skylake, IBRS)
    CPU family:          6
    Model:               85
    Thread(s) per core:  1
    Core(s) per socket:  2
    Socket(s):           1
    Stepping:            4
    BogoMIPS:            4589.21
    Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology cpuid
                         tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fa
                         ult invpcid_single pti ssbd ibrs ibpb fsgsbase bmi1 hle avx2 smep bmi2 erms invpcid rtm avx512f avx512dq rdseed adx smap clwb avx512cd avx512bw avx512vl xsaveopt xsavec xget
                         bv1 arat pku ospke md_clear
Virtualization features:
  Hypervisor vendor:     KVM
  Virtualization type:   full
Caches (sum of all):
  L1d:                   64 KiB (2 instances)
  L1i:                   64 KiB (2 instances)
  L2:                    8 MiB (2 instances)
  L3:                    16 MiB (1 instance)
NUMA:
  NUMA node(s):          1
  NUMA node0 CPU(s):     0,1
Vulnerabilities:
  Itlb multihit:         KVM: Mitigation: VMX unsupported
  L1tf:                  Mitigation; PTE Inversion
  Mds:                   Mitigation; Clear CPU buffers; SMT Host state unknown
  Meltdown:              Mitigation; PTI
  Mmio stale data:       Vulnerable: Clear CPU buffers attempted, no microcode; SMT Host state unknown
  Retbleed:              Mitigation; IBRS
  Spec store bypass:     Mitigation; Speculative Store Bypass disabled via prctl and seccomp
  Spectre v1:            Mitigation; usercopy/swapgs barriers and __user pointer sanitization
  Spectre v2:            Mitigation; IBRS, IBPB conditional, RSB filling, PBRSB-eIBRS Not affected
  Srbds:                 Not affected
  Tsx async abort:       Mitigation; Clear CPU buffers; SMT Host state unknown
root@jammy:~#

For more details, you can check the cpuinfo file.

# cat /proc/cpuinfo | less

Let us begin

1. Using top command

The top command displays Linux processes and has a column that details how the processes are utilizing available/allocated CPU.

top - 10:50:24 up 9 days, 23:32,  4 users,  load average: 4.50, 4.46, 4.02
Tasks: 140 total,   2 running, 138 sleeping,   0 stopped,   0 zombie
%Cpu(s): 13.8 us,  3.4 sy,  0.0 ni, 82.7 id,  0.0 wa,  0.0 hi,  0.2 si,  0.0 st
KiB Mem :  8001400 total,   126308 free,  2132428 used,  5742664 buff/cache
KiB Swap:  8257532 total,  8255732 free,     1800 used.  5508964 avail Mem

PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
   736 root      20   0 2290772 979100  99752 S  27.2 12.2   1787:02 kesl
 61548 root      20   0 4090296 993816  27168 S   3.0 12.4 348:22.96 java
  1778 root      20   0 1312512  66428  48888 S   1.0  0.8 156:42.14 klnagent
   734 root      20   0   20720   6100   5684 S   0.7  0.1  95:48.03 wdserver
   657 root      20   0  116332   4292   3104 S   0.3  0.1  29:56.68 kesl_launcher.s

2. Using vmstat command

The vmstat command reports virtual memory statistics about processes, memory, paging, block IO, traps, and CPU utilization. Sample vmstat output is shown below. The last column is labelled cpu and should be where we are interested in here.

# vmstat

 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
  r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
  4  0    520 135564   2168 5859468    0    0     5     4   11   19  6  2 91  0  0
  • The cpu columns are expressed as percentages of total CPU time.
  • The first cpu column, “us” (user code) shows the percentage of time spent running non-kernel code.
  • The second cpu column, “sy” (system code) shows the percentage of time spent running kernel code.
  • The third cpu column, “id” shows the percentage of idle time.
  • The fourth cpu column, “wa” shows the percentage of time spent waiting for I/O (Input/Output).
  • The fifth cpu column, “st” (steal time) shows the percentage of time stolen from a virtual machine.

3. Using top command

From its man pages, Htop is a free (GPL) ncurses-based process viewer for Linux. It is similar to top, but allows you to scroll vertically and horizontally, so you can see all the processes running on the system, along with their full command lines, as well as viewing them as a process tree, selecting multiple processes and acting on them all at once.
Tasks related to processes (killing, renicing) can be done without entering their PIDs.

4. Using sar command

An acronym for System Activity Report, this command is used to collect, report, or save system activity information in Unix like operating system.

The sysntax for sar is as follows:

sar [options] [interval [count] ]

Install sar

### Install sar on Ubuntu/Debian ###
sudo apt update
sudo apt -y install sysstat

### Install sar on Arch/Manjaro ###
sudo pacman -S sysstat

### Install sar on Fedora / CentOS ###
sudo dnf install sysstat
sudo yum install sysstat

After installation, enable sysstat to start collecting system information. Change ENABLED=”false” to ENABLED=”true” in the config file as shown below. After the edit, restart sysstat.

$ cat /etc/default/sysstat
#
# Default settings for /etc/init.d/sysstat, /etc/cron.d/sysstat
# and /etc/cron.daily/sysstat files
#
# Should sadc collect system activity informations? Valid values
# are "true" and "false". Please do not put other values, they
# will be overwritten by debconf!
ENABLED="true"

Restart sysstat after making the changes.

sudo systemctl restart sysstat

Generate CPU reports 10 times every 5 seconds

# sar 5 10
Linux 4.4.0-17134-Microsoft (Kibet-pc)  07/26/19        x86_64        (8 CPU)
10:59:40        CPU     %user     %nice   %system   %iowait    %steal     %idle
10:59:45        all      8.38      0.00     13.42      0.00      0.00     78.20

If you are using a GUI based window manager such as GNOME or KDE or others, look for the system monitor utility for your distribution. It can be easily installed if it is missing.

Conclusion

Checking cpu resources in your server is very essential in your day to day house-keeping. It is important for capacity planning and for checking the health of your system. Thank you for reading through and we hope the guide was helpful.

Also Read:

Cart

Your Cart is Empty

Back To Shop