GNU/Linux >> Znalost Linux >  >> Linux

Jak zjistit počet jader systému v Linuxu?

Chcete-li získat úplný obrázek, musíte se podívat na počet vláken na jádro, jader na patici a patice. Pokud tato čísla vynásobíte, získáte počet CPU ve vašem systému.

CPU =Počet vláken na jádro X jader na soket X soket

CPU jsou to, co vidíte, když spustíte htop (tyto se nerovnají fyzickým CPU).

Zde je příklad ze stolního počítače:

$ lscpu | grep -E '^Thread|^Core|^Socket|^CPU\('
CPU(s):                8
Thread(s) per core:    2
Core(s) per socket:    4
Socket(s):             1

A server:

$ lscpu | grep -E '^Thread|^Core|^Socket|^CPU\('
CPU(s):                32
Thread(s) per core:    2
Core(s) per socket:    8
Socket(s):             2

Výstup nproc odpovídá počtu CPU od lscpu . U stolního počítače výše by to mělo odpovídat 8 CPU hlášeným lscpu :

$ nproc --all
8

Výstup /proc/cpuinfo by měly odpovídat těmto informacím, například na desktopovém systému výše vidíme, že je zde 8 procesorů (CPU) a 4 jádra (id jádra 0-3):

$ grep -E 'processor|core id' /proc/cpuinfo
processor   : 0
core id     : 0
processor   : 1
core id     : 0
processor   : 2
core id     : 1
processor   : 3
core id     : 1
processor   : 4
core id     : 2
processor   : 5
core id     : 2
processor   : 6
core id     : 3
processor   : 7
core id     : 3

cpu cores hlášeno /proc/cpuinfo odpovídá Core(s) per socket hlášeno lscpu . U výše uvedeného stolního počítače by to mělo odpovídat 4 jádrům na soket, které uvádí lscpu:

$ grep -m 1 'cpu cores' /proc/cpuinfo
cpu cores   : 4

Chcete-li konkrétně odpovědět na vaši otázku, sdělte, kolik jader máte, vynásobením počtu jader, která máte na jeden soket, počtem soketů, které máte.

Jádra =Počet jader na soket X Sockets

Například systémy nad desktopem mají 4 jádra:

$ echo "Cores = $(( $(lscpu | awk '/^Socket\(s\)/{ print $2 }') * $(lscpu | awk '/^Core\(s\) per socket/{ print $4 }') ))"
Cores = 4

Zatímco server má 16:

$ echo "Cores = $(( $(lscpu | awk '/^Socket\(s\)/{ print $2 }') * $(lscpu | awk '/^Core\(s\) per socket/{ print $4 }') ))"
Cores = 16

Další užitečnou utilitou je dmidecode které vydávají informace na zásuvku. V případě výše uvedeného serverového systému očekáváme 8 jader na soket a 16 vláken na soket:

$ sudo dmidecode -t 4 | grep -E 'Socket Designation|Count'
    Socket Designation: CPU1
    Core Count: 8
    Thread Count: 16
    Socket Designation: CPU2
    Core Count: 8
    Thread Count: 16

lscpu příkaz má řadu užitečných možností, které byste mohli chtít vyzkoušet, například:

$ lscpu --all --extended
$ lscpu --all --parse=CPU,SOCKET,CORE | grep -v '^#'

Viz man lscpu pro podrobnosti.

Shrnuto:

  • Musíte si být vědomi soketů, jader a vláken
  • Musíte si dávat pozor na výraz CPU, protože v různých kontextech znamená různé věci

Musíte se podívat na zásuvky a jádra na zásuvku. V tomto případě máte 1 fyzický CPU (socket), který má 4 jádra (jádra na patici).


Tyto informace můžete získat na nproc(1) příkaz

$ nproc --all
12

Nevyžaduje práva root.


Linux
  1. Jak nakonfigurovat virtualizaci na Redhat Linuxu

  2. Jak nastavit nebo změnit název hostitele systému v systému Linux

  3. Jak změnit název hostitele v systému Linux

  1. jak zjistit číslo přerušení/GPIO pro konkrétní pin v linuxu

  2. Jak v Linuxu zjistit, kolik jader počítače je aktivních?

  3. Jak poznat cestu JVM v systému Linux?

  1. Jak zjistit, že Java je nainstalována v systému Linux?

  2. Linux:jak zjistit, které procesy jsou připojeny ke kterému jádru?

  3. Jak zjistím, zda byl můj server Linux napaden hackery?