Sometimes, you may need to check how many CPUs a Linux system has for various reasons. I can name a few such as purchasing a software license or optimizing your system for an application workloads, etc,.
The main configuration file of the CPU and system architecture information’s are stored in the '/proc/cpuinfo'
file. It’s a pseudo-file system used as an interface to kernel data structures, which is usually mounted at /proc.
Linux systems provide several ways to obtain these information, and this article will discuss best three easiest ways to get it.
The lscpu command is one of the easiest commands to get complete details of CPU architecture information in Linux system. It displays CPU details such as the number of CPUs, threads, cores, sockets, Vendor ID, Model name, CPU min/max MHz, Virtualization features, Architecture and CPU caches.
lscpu
You can easily calculate Physical CPUs & Virtual CPUs based on the lscpu command output using the below formula.
CPU(s): 8 Thread(s) per core: 2 Core(s) per socket: 4 Socket(s): 1
The ‘CPU(s)’ value indicates the number of logical cores nor virtual cores, which is 8 in our case.
Based on the above formula, our machine has '4'
physical cores, and '8'
logical cores.
The lscpu command gathers CPU architecture information from the /proc/cpuinfo file and shows summarized output. You can also get this information directly by parsing the file using cat, less and more command, but it will show you separate information for each CPUs.
cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 94 model name : Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz stepping : 3 microcode : 0xf0 cpu MHz : 2600.000 cache size : 6144 KB physical id : 0 siblings : 8 core id : 0 cpu cores : 4 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 22 wp : yes bogomips : 5199.98 clflush size : 64 cache_alignment : 64 address sizes : 39 bits physical, 48 bits virtual power management: . . processor : 7 vendor_id : GenuineIntel cpu family : 6 model : 94 model name : Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz stepping : 3 microcode : 0xf0 cpu MHz : 2600.000 cache size : 6144 KB physical id : 0 siblings : 8 core id : 0 cpu cores : 4 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 22 wp : yes bogomips : 5199.98 clflush size : 64 cache_alignment : 64 address sizes : 39 bits physical, 48 bits virtual power management:
The nproc command shows the number of processing units available to the current process on your Linux system, run:
# nproc 8
Hyper-threading (Simultaneous multithreading – SMT) is a feature first introduced in Intel processors. A single CPU core allows multiple threads to be processed simultaneously to make better use of the resources provided by modern processor architectures.
We can identify which core has SMT (hyper-threading) enabled, Run:
lscpu --all --extended CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE MAXMHZ MINMHZ MHZ 0 0 0 0 0:0:0:0 yes 3500.0000 800.0000 2600.000 1 0 0 1 1:1:1:0 yes 3500.0000 800.0000 1180.252 2 0 0 2 2:2:2:0 yes 3500.0000 800.0000 2600.000 3 0 0 3 3:3:3:0 yes 3500.0000 800.0000 2600.000 4 0 0 0 0:0:0:0 yes 3500.0000 800.0000 2600.000 5 0 0 1 1:1:1:0 yes 3500.0000 800.0000 2600.000 6 0 0 2 2:2:2:0 yes 3500.0000 800.0000 1258.902 7 0 0 3 3:3:3:0 yes 3500.0000 800.0000 2600.000
You can identify this by looking at the ‘CPU’ column and ‘CORE’ column.
For example: CPU 0 and CPU 4 belong to CORE 0. Therefore, CORE 0 is a P-core (Performance Core) with SMT.
In this tutorial, we learned three ways to check the number of processors or cores available on a Linux system. Also, learned other information about the CPU architecture, vendor ID, model name, etc,.
Cron is a command-line job scheduler available on Linux operating systems that allows users to…
In computing, there are two types of IP addresses, IPv4 and IPv6. By default, IPv6…
A tarball is commonly known as a TAR file, short for tape archive, which is…
A tar archive is a file that stores a collection of directories and files, also…
On Linux, you can quickly find out how LUNs are mapped to the underlying OS…
Keeping your Ubuntu system up-to-date is critical to ensuring a system's stability and security. This…
This website uses cookies.