Linux: как узнать количество ядер процессора.

Если вы пользуетесь Linux и хотите узнать, сколько ядер у вашего процессора, — это проще простого. В этой статье я расскажу, как это сделать, используя нескольких способов. Плюс, я объясню, что такое ядра и зачем их знать.

Что такое ядра процессора и зачем они нужны?

Ядро — это основной рабочий блок процессора, который выполняет команды.

Один процессор может иметь одно или несколько ядер.

Чем больше ядер — тем больше одновременно задач может обрабатывать ваш компьютер.

Знание количества ядер важно для понимания мощностей компьютера, чтобы лучше его настроить или понять его возможности.

Как узнать количество ядер: простые способы

1. Использование команды lscpu

Самый популярный способ — воспользоваться командой lscpu:

Выполните в терминале следующую команду:

lscpu

Пример вывода:

[root@waky practice]# lscpu
Architecture:                x86_64
  CPU op-mode(s):            32-bit, 64-bit
  Address sizes:             46 bits physical, 48 bits virtual
  Byte Order:                Little Endian
CPU(s):                      1
  On-line CPU(s) list:       0
Vendor ID:                   GenuineIntel
  Model name:                Intel(R) Xeon(R) CPU E5-1650 0 @ 3.20GHz
    CPU family:              6
    Model:                   45
    Thread(s) per core:      1
    Core(s) per socket:      1
    Socket(s):               1
    Stepping:                7
    BogoMIPS:                6399.99
    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 rdtscp lm constant_tsc rep_good nopl xtopology nonstop_t
                             sc cpuid tsc_known_freq pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt aes xsave avx hypervisor lahf_lm pti arat flush_l1d arch_capabilities
Virtualization features:
  Hypervisor vendor:         KVM
  Virtualization type:       full
Caches (sum of all):
  L1d:                       32 KiB (1 instance)
  L1i:                       32 KiB (1 instance)
  L2:                        256 KiB (1 instance)
  L3:                        12 MiB (1 instance)
NUMA:
  NUMA node(s):              1
  NUMA node0 CPU(s):         0
Vulnerabilities:
  Gather data sampling:      Not affected
  Indirect target selection: Mitigation; Aligned branch/return thunks
  Itlb multihit:             KVM: Mitigation: VMX unsupported
  L1tf:                      Mitigation; PTE Inversion
  Mds:                       Vulnerable: Clear CPU buffers attempted, no microcode; SMT Host state unknown
  Meltdown:                  Mitigation; PTI
  Mmio stale data:           Unknown: No mitigations
  Reg file data sampling:    Not affected
  Retbleed:                  Not affected
  Spec rstack overflow:      Not affected
  Spec store bypass:         Vulnerable
  Spectre v1:                Mitigation; usercopy/swapgs barriers and __user pointer sanitization
  Spectre v2:                Mitigation; Retpolines; STIBP disabled; RSB filling; PBRSB-eIBRS Not affected; BHI Retpoline
  Srbds:                     Not affected
  Tsa:                       Not affected
  Tsx async abort:           Not affected
  Vmscape:                   Not affected
[root@waky practice]#

Посмотрите результат. В разделе «CPU(s)» или «Core(s) per socket» будет указано количество потоков, ядер и сокетов.

2. Команда nproc

Если нам не нужна вся эта информация выше, а мы хотим знать только количество доступных для использования процессорных ядер, то нам пригодится простая команда nproc. Достаточно ввести ее в терминал без каких либо параметров:

nproc

Пример вывода:

[root@waky practice]# nproc
1
[root@waky practice]#

3. Просмотр файла /proc/cpuinfo

Этот способ не требует отдельных команд. Достаточно проверить содержимое файла /proc/cpuinfo. Для этого используем командуcat:

cat /proc/cpuinfo

Пример вывода:

[root@waky practice]# cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 45
model name      : Intel(R) Xeon(R) CPU E5-1650 0 @ 3.20GHz
stepping        : 7
microcode       : 0xffffffff
cpu MHz         : 3199.998
cache size      : 12288 KB
physical id     : 0
siblings        : 1
core id         : 0
cpu cores       : 1
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
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 rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt aes xsave avx hypervisor lahf_lm pti arat flush_l1d arch_capabilities
bugs            : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit mmio_unknown bhi spectre_v2_user its
bogomips        : 6399.99
clflush size    : 64
cache_alignment : 64
address sizes   : 46 bits physical, 48 bits virtual
power management:

[root@waky practice]#

В полученном выводе ищите строку cpu cores.

4. Использование команды htop

Если у вас установлена программа htop (если нет — установка на Ubuntu; установка на CentOS), она покажет информацию о процессоре прямо в графическом виде.

Достаточно запустить программу командой:

htop

Посмотрите на верхнюю панель раздел «CPU» — там будет указано число ядер.

Подробнее интерфейс программы описан в нашей отдельной статье.

Заключение

Теперь вы знаете несколько способов, как проверить количество ядер вашего процессора под Linux. Сделать это легко и быстро можно не только с помощью дополнительных программ, но и непосредственно из системных файлов.