Knowing the number of CPU cores in your Ubuntu system is important for understanding and optimizing system performance. Ubuntu offers several simple methods to determine the core count. In this comprehensive guide, we will explore the core concepts and commands to find CPU cores in Ubuntu.
Introduction to CPU Cores
Modern CPUs contain multiple processor cores on a single integrated circuit die. Using multiple cores allows parallel processing, greatly increasing overall speed.
For example, a 4 core CPU can run 4 programs simultaneously. An 8 core CPU could run 8 programs at the same time.
Some CPUs also support hyperthreading, which makes each core appear as two logical processors. This can further improve performance for multi-threaded applications.
Understanding your Ubuntu system‘s CPU core count helps optimize software and resources. You can balance workloads properly between cores. Checking core numbers also provides insight when purchasing new hardware.
Below we outline several methods to find this key system attribute.
Using the lscpu Command
The lscpu
command gathers CPU architecture information from the /proc/cpuinfo
file and Linux sysfs. It then displays concise output to the terminal.
Run lscpu
with no arguments to show general CPU details:
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
Address sizes: 39 bits physical, 48 bits virtual
CPU(s): 8
On-line CPU(s) list: 0-7
Threads per core: 2
Cores per socket: 4
Sockets: 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 158
Model name: Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
Stepping: 9
CPU MHz: 893.042
BogoMIPS: 5616.00
Hypervisor vendor: KVM
Virtualization type: full
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 6144K
NUMA node0 CPU(s): 0-7
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid pni pclmulqdq monitor ssse3 cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt arat md_clear arch_capabilities
Focusing on the "CPU(s)" line, this shows the system has 8 total cores.
We can filter the output to just this line using grep:
$ lscpu | grep "CPU(s)"
CPU(s): 8
So for this example system, there are 8 CPU cores.
Reading /proc/cpuinfo
The /proc
file system contains details about running processes and hardware. The /proc/cpuinfo
file provides in-depth CPU information.
Use cat
to view the full contents:
$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 158
model name : Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
stepping : 9
microcode : 0xde
cpu MHz : 800.084
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
...
This exposes details on the CPU model, speeds, caches, flags, and more.
The "siblings" line reveals the total number of logical cores. This includes hardware multithreading cores.
The "cpu cores" line shows the number of physical cores.
We can isolate these two lines using grep:
$ cat /proc/cpuinfo | grep "cpu cores"
cpu cores : 4
$ cat /proc/cpuinfo | grep "siblings"
siblings : 8
So this processor has 4 physical cores and 8 logical processors with hyperthreading enabled.
Using the nproc Command
The simplest way to get just the number of CPU cores is with nproc
. This utility prints the number of processing units available.
Invoke it without any options:
$ nproc
8
On dual socket systems, this shows the core count for all CPUs.
For per-cpu counts, use nproc --all
:
$ nproc --all
8
4
4
So nproc
offers a quick one-line method to check Ubuntu environment cores.
Checking Core Count with lshw
The lshw
tool generates detailed hardware information including CPU configuration.
Use elevated permissions to show everything:
$ sudo lshw -short
H/W path Device Class Description
====================================================
system Computer
/0 bus Motherboard
/0/0 memory 16GiB System Memory
/0/1 processor Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
/0/100 bridge Intel Corporation
/0/100/1 bridge Intel Corporation
/0/100/1.1 bridge Intel Corporation
/0/100/1.1/0 network Ethernet interface
/0/100/1.1/0.1 network Wireless interface
/0/100/14 bus Sunrise Point-H USB 3.0 xHCI Controller
/0/100/14/0 bus xHCI Host Controller
/0/100/14/0/6 bus xHCI Host Controller
/0/100/14/0/6/1 input Virtual keyboard
/0/100/14/0/6/2 input Virtual mouse
Looking at the processor entry, we see:
/0/1 processor Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
So lshw
can confirm the CPU model. But it does not directly show core counts.
Get CPU Information with dmidecode
The dmidecode
tool reports hardware data from the BIOS. Many details about the CPU are exposed:
$ sudo dmidecode -t processor
# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 3.1.1 present.
Handle 0x0004, DMI type 4, 48 bytes
Processor Information
Socket Designation: SOCKET 0
Type: Central Processor
Family: Core i7
Manufacturer: Intel(R) Corporation
ID: AF 06 05 00 FF FB EB BF
Version: Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
Voltage: 1.2 V
External Clock: 100 MHz
Max Speed: 3800 MHz
Current Speed: 2800 MHz
Status: Populated, Enabled
Upgrade: Socket BGA1364
L1 Cache Handle: 0x0005
L2 Cache Handle: 0x0006
L3 Cache Handle: 0x0007
Serial Number: To Be Filled By O.E.M.
Asset Tag: To Be Filled By O.E.M.
Part Number: To Be Filled By O.E.M.
Core Count: 4
Core Enabled: 4
Thread Count: 8
Characteristics:
64-bit capable
Multi-Core
Hardware Thread
Execute Protection
Enhanced Virtualization
Power/Performance Control
The "Core Count" and "Thread Count" fields show the number of physical and logical CPU cores.
Conclusion
Determining the count of CPU cores in Ubuntu is fast and straightforward using native commands. Tools like lscpu
, nproc
, /proc/cpuinfo
, lshw
, and dmidecode
provide completeness through different perspectives.
Knowing your Ubuntu system‘s core numbers assists with software optimization, resource allocation, capacity planning, and component purchases. Both physical and logical cores factor into configurations and workloads.
We encourage applying the techniques covered here to document your current CPUs. This information then helps guide upgrades and migrations to maximize performance. Let us know if you have any other favorite methods for getting Ubuntu processor details!