Interpretowanie danych wyjściowych cat / proc / cpuinfo

22

Jak interpretować informacje wydrukowane za pomocą następującego polecenia w systemie Linux

cat /proc/cpuinfo

Na moim laptopie otrzymuję następujące dane wyjściowe:

[gaurish108: ~] $ cat / proc / cpuinfo (02-09 15:34)
procesor: 0
vendor_id: GenuineIntel
rodzina procesorów: 6
model: 37
nazwa modelu: Intel (R) Core (TM) i3 CPU M 330 @ 2.13GHz
stopniowanie: 2
procesor MHz: 933 000
rozmiar pamięci podręcznej: 3072 KB
identyfikator fizyczny: 0
rodzeństwo: 4
identyfikator rdzenia: 0
Rdzenie procesora: 2
apicid: 0
początkowy apicid: 0
fdiv_bug: nie
hlt_bug: no
f00f_bug: no
coma_bug: no
fpu: tak
wyjątek fpu: tak
poziom cpuid: 11
wp: tak
flagi: 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 nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology nonstopm_spf dsp pdcm sse4_1 sse4_2 popcnt lahf_lm arat dts tpr_shadow vnmi flexpriority ept vpid
bogomips: 4256,49
rozmiar flflush: 64
cache_alignment: 64
rozmiary adresów: 36 bitów fizycznych, 48 bitów wirtualnych
zarządzanie energią:

procesor: 1
vendor_id: GenuineIntel
rodzina procesorów: 6
model: 37
nazwa modelu: Intel (R) Core (TM) i3 CPU M 330 @ 2.13GHz
stopniowanie: 2
procesor MHz: 933 000
rozmiar pamięci podręcznej: 3072 KB
identyfikator fizyczny: 0
rodzeństwo: 4
identyfikator rdzenia: 0
Rdzenie procesora: 2
apicid: 1
początkowy apicid: 1
fdiv_bug: nie
hlt_bug: no
f00f_bug: no
coma_bug: no
fpu: tak
wyjątek fpu: tak
poziom cpuid: 11
wp: tak
flagi: 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 nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology nonstopm_spf dsp pdcm sse4_1 sse4_2 popcnt lahf_lm arat dts tpr_shadow vnmi flexpriority ept vpid
bogomips: 4256,40
rozmiar flflush: 64
cache_alignment: 64
rozmiary adresów: 36 bitów fizycznych, 48 bitów wirtualnych
zarządzanie energią:

procesor: 2
vendor_id: GenuineIntel
rodzina procesorów: 6
model: 37
nazwa modelu: Intel (R) Core (TM) i3 CPU M 330 @ 2.13GHz
stopniowanie: 2
procesor MHz: 933 000
rozmiar pamięci podręcznej: 3072 KB
identyfikator fizyczny: 0
rodzeństwo: 4
identyfikator rdzenia: 2
Rdzenie procesora: 2
apicid: 4
początkowy apicid: 4
fdiv_bug: nie
hlt_bug: no
f00f_bug: no
coma_bug: no
fpu: tak
wyjątek fpu: tak
poziom cpuid: 11
wp: tak
flagi: 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 nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology nonstopm_spf dsp pdcm sse4_1 sse4_2 popcnt lahf_lm arat dts tpr_shadow vnmi flexpriority ept vpid
bogomips: 4256,43
rozmiar flflush: 64
cache_alignment: 64
rozmiary adresów: 36 bitów fizycznych, 48 bitów wirtualnych
zarządzanie energią:

procesor: 3
vendor_id: GenuineIntel
rodzina procesorów: 6
model: 37
nazwa modelu: Intel (R) Core (TM) i3 CPU M 330 @ 2.13GHz
stopniowanie: 2
procesor MHz: 933 000
rozmiar pamięci podręcznej: 3072 KB
identyfikator fizyczny: 0
rodzeństwo: 4
identyfikator rdzenia: 2
Rdzenie procesora: 2
apicid: 5
początkowy apicid: 5
fdiv_bug: nie
hlt_bug: no
f00f_bug: no
coma_bug: no
fpu: tak
wyjątek fpu: tak
poziom cpuid: 11
wp: tak
flagi: 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 nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology nonstopm_spf dsp pdcm sse4_1 sse4_2 popcnt lahf_lm arat dts tpr_shadow vnmi flexpriority ept vpid
bogomips: 4256,42
rozmiar flflush: 64
cache_alignment: 64
rozmiary adresów: 36 bitów fizycznych, 48 bitów wirtualnych
zarządzanie energią:

Teraz mówi, że w systemie są 4 procesory. W informacjach o każdym polu procesora znajduje się również pole, które mówi, że rdzenie cou są 2.

Czy to oznacza, że ​​w moim systemie są 4 procesory Intel i3? Co tak naprawdę oznacza tutaj pole procesora?

smilingbuddha
źródło

Odpowiedzi:

17

Wpisy są procesorami logicznymi ; obiekty używane przez jądro wewnętrznie, niekoniecznie związane z urządzeniami fizycznymi. (Pamiętaj, że wszystkie mają to samo physical id).

Innymi słowy, reprezentują cztery rdzenie pojedynczego procesora Intel i3.

Ponadto, jak zauważono w tym poście (który nie jest dokładnie duplikatem, ale blisko spokrewniony), te rdzenie są również logiczne - CPU ma dwa rdzenie fizycznie, ale obsługuje hiperwątkowanie.

Zauważ, że niektóre procesory Intel (w tym i5) używają hiperwątkowości, systemu, w którym pojedynczy procesor ma (na przykład) 2 rdzenie pyfizyczne, ale zapewnia 4 rdzenie logiczne - co pozwala systemowi traktować procesor jako mający więcej rdzeni niż w rzeczywistości robi.


Jeśli twój system ma to lscpunarzędzie (część najnowszej wersji ut-linux ), wyświetli bardziej czytelne podsumowanie zainstalowanych procesorów, na przykład:

Thread(s) per core:    2
Core(s) per socket:    2
Socket(s):             1
grawitacja
źródło
Czy rozmiar adresu fizycznego jest dłuższy, tym lepiej, czy im krótszy, tym lepszy?
Qian Chen,
@ElgsQianChen: Zwykle im dłużej, tym lepiej. Zobacz, jak świat zmienił się z procesorów 8-bitowych na 16-bitowe na 32-bitowe, a następnie na 64-bitowe. Ta liczba bitów to „rozmiar adresu”.
grawity
Wydaje się, że widzę różne rozmiary fizyczne, takie jak 36 bitów, 40 bitów i 46 bitów. Rozmiar wirtualny wydaje się zawsze wynosić 48 bitów. Dlaczego więc istnieją różne rozmiary fizyczne i co one oznaczają, gdy są krótsze lub dłuższe?
Qian Chen,
9

Oto wbudowany skrypt awk do ładnego drukowania i wydobywania odpowiednich danych z /proc/cpuinfo:

cat /proc/cpuinfo | \
awk -v FS=':' '                                       \
  /^physical id/ { if(nb_cpu<$2)  { nb_cpu=$2 } }     \
  /^cpu cores/   { if(nb_cores<$2){ nb_cores=$2 } }   \
  /^processor/   { if(nb_units<$2){ nb_units=$2 } }   \
  /^model name/  { model=$2 }                         \
                                                      \
  END{                                                \
   nb_cpu=(nb_cpu+1);                                 \
   nb_units=(nb_units+1);                             \
                                                      \
   print "CPU model:",model;                          \
   print nb_cpu,"CPU,",nb_cores,"physical cores per CPU, total",nb_units,"logical CPU units" \
 }'

Dane wyjściowe dla serwera o wysokiej wydajności:

CPU model:  Intel(R) Xeon(R) CPU           X5650  @ 2.67GHz
2 CPU,  6 physical cores per CPU, total 24 logical CPU units

Dane wyjściowe dla laptopa Core i5:

CPU model:  Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz
1 CPU,  2 physical cores per CPU, total 4 logical CPU units
Mickaël Le Baillif
źródło
0

To po prostu oznacza:

  1. W rzeczywistości masz jeden czterordzeniowy procesor i3 w swoim systemie.

  2. Ten „czterordzeniowy procesor i3” ma w sobie cztery logiczne rdzenie.

SP Sandhu
źródło
2
W rzeczywistości jest to dwurdzeniowy procesor i3 z czterema logicznymi rdzeniami.
David Schwartz