การตีความเอาต์พุตของ cat / proc / cpuinfo


22

เราตีความข้อมูลที่พิมพ์โดยคำสั่งต่อไปนี้ใน Linux อย่างไร

cat /proc/cpuinfo

บนแล็ปท็อปของฉันฉันได้ผลลัพธ์ต่อไปนี้:

[gaurish108: ~] $ cat / proc / cpuinfo (02-09 15:34)
หน่วยประมวลผล: 0
vendor_id: GenuineIntel
ตระกูล cpu: 6
แบบ: 37
ชื่อรุ่น: Intel (R) Core (TM) i3 CPU M 330 @ 2.13GHz
ก้าว: 2
cpu MHz: 933.000
ขนาดแคช: 3072 KB
รหัสทางกายภาพ: 0
พี่น้อง: 4
id หลัก: 0
แกน cpu: 2
apicid: 0
apicid เริ่มต้น: 0
fdiv_bug: ไม่
hlt_bug: ไม่
f00f_bug: ไม่
coma_bug: ไม่
fpu: ใช่
fpu_exception: ใช่
ระดับ cpuid: 11
wp: ใช่
ธง: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov แพตช์ pse36 clflush dts acpi mmx fxsr sse sse sse2 เอสเอส ht tm pbe nx rdtscp lm constant_tsc pdcm sse4_1 sse4_2 popcnt lahf_lm arat dts tpr_shadow vnmi flexpriority ept vpid
โบกี้: 4256.49
ขนาด clflush: 64
cache_alignment: 64
ขนาดที่อยู่: ฟิสิคัล 36 บิต, 48 บิตเสมือน
การจัดการพลังงาน:

หน่วยประมวลผล: 1
vendor_id: GenuineIntel
ตระกูล cpu: 6
แบบ: 37
ชื่อรุ่น: Intel (R) Core (TM) i3 CPU M 330 @ 2.13GHz
ก้าว: 2
cpu MHz: 933.000
ขนาดแคช: 3072 KB
รหัสทางกายภาพ: 0
พี่น้อง: 4
id หลัก: 0
แกน cpu: 2
apicid: 1
apicid เริ่มต้น: 1
fdiv_bug: ไม่
hlt_bug: ไม่
f00f_bug: ไม่
coma_bug: ไม่
fpu: ใช่
fpu_exception: ใช่
ระดับ cpuid: 11
wp: ใช่
ธง: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov แพตช์ pse36 clflush dts acpi mmx fxsr sse sse sse2 เอสเอส ht tm pbe nx rdtscp lm constant_tsc pdcm sse4_1 sse4_2 popcnt lahf_lm arat dts tpr_shadow vnmi flexpriority ept vpid
โบกี้: 4256.40
ขนาด clflush: 64
cache_alignment: 64
ขนาดที่อยู่: ฟิสิคัล 36 บิต, 48 บิตเสมือน
การจัดการพลังงาน:

หน่วยประมวลผล: 2
vendor_id: GenuineIntel
ตระกูล cpu: 6
แบบ: 37
ชื่อรุ่น: Intel (R) Core (TM) i3 CPU M 330 @ 2.13GHz
ก้าว: 2
cpu MHz: 933.000
ขนาดแคช: 3072 KB
รหัสทางกายภาพ: 0
พี่น้อง: 4
id หลัก: 2
แกน cpu: 2
apicid: 4
apicid เริ่มต้น: 4
fdiv_bug: ไม่
hlt_bug: ไม่
f00f_bug: ไม่
coma_bug: ไม่
fpu: ใช่
fpu_exception: ใช่
ระดับ cpuid: 11
wp: ใช่
ธง: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov แพตช์ pse36 clflush dts acpi mmx fxsr sse sse sse2 เอสเอส ht tm pbe nx rdtscp lm constant_tsc pdcm sse4_1 sse4_2 popcnt lahf_lm arat dts tpr_shadow vnmi flexpriority ept vpid
โบกี้: 4256.43
ขนาด clflush: 64
cache_alignment: 64
ขนาดที่อยู่: ฟิสิคัล 36 บิต, 48 บิตเสมือน
การจัดการพลังงาน:

หน่วยประมวลผล: 3
vendor_id: GenuineIntel
ตระกูล cpu: 6
แบบ: 37
ชื่อรุ่น: Intel (R) Core (TM) i3 CPU M 330 @ 2.13GHz
ก้าว: 2
cpu MHz: 933.000
ขนาดแคช: 3072 KB
รหัสทางกายภาพ: 0
พี่น้อง: 4
id หลัก: 2
แกน cpu: 2
apicid: 5
apicid เริ่มต้น: 5
fdiv_bug: ไม่
hlt_bug: ไม่
f00f_bug: ไม่
coma_bug: ไม่
fpu: ใช่
fpu_exception: ใช่
ระดับ cpuid: 11
wp: ใช่
ธง: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov แพตช์ pse36 clflush dts acpi mmx fxsr sse sse sse2 เอสเอส ht tm pbe nx rdtscp lm constant_tsc pdcm sse4_1 sse4_2 popcnt lahf_lm arat dts tpr_shadow vnmi flexpriority ept vpid
โบกี้: 4256.42
ขนาด clflush: 64
cache_alignment: 64
ขนาดที่อยู่: ฟิสิคัล 36 บิต, 48 บิตเสมือน
การจัดการพลังงาน:

ตอนนี้มันบอกว่ามี 4 โปรเซสเซอร์ในระบบ นอกจากนี้ยังมีฟิลด์ภายในข้อมูลของแต่ละโปรเซสเซอร์ซึ่งระบุว่า cou cores คือ 2

นั่นหมายความว่ามี CPU ของ Intel i3 4 ตัวในระบบของฉันหรือไม่ ฟิลด์ตัวประมวลผลหมายถึงอะไรที่นี่จริง ๆ

คำตอบ:


17

รายการเป็นตัวประมวลผลเชิงตรรกะ วัตถุที่ใช้โดยเคอร์เนลภายในไม่จำเป็นต้องเชื่อมโยงกับอุปกรณ์ทางกายภาพ (โปรดทราบว่าพวกเขาทั้งหมดมีเหมือนกันphysical id)

กล่าวอีกนัยหนึ่งมันเป็นตัวแทนของคอร์สี่คอร์ของ Intel i3 CPU เดียว

นอกจากนี้ตามที่ระบุไว้ในโพสต์นี้ (ซึ่งไม่ซ้ำกันอย่างแน่นอน แต่เกี่ยวข้องอย่างใกล้ชิด) แกนเหล่านั้นมีเหตุผลเช่นกัน - CPU มีสองคอร์ทางร่างกาย แต่สนับสนุนไฮเปอร์เธรด

โปรดทราบว่าโปรเซสเซอร์ Intel บางตัว (มีอยู่ใน i5) ใช้ไฮเปอร์เธรดซึ่งเป็นระบบที่โปรเซสเซอร์เดียวมี (ตัวอย่าง) 2 pyhsical cores แต่จะมี 4 คอร์แบบลอจิคัลซึ่งทำให้ระบบปฏิบัติการปฏิบัติกับโปรเซสเซอร์มากกว่ามีจริง ทำ.


หากระบบของคุณมีlscpuเครื่องมือ (ส่วนหนึ่งของutil-linuxเมื่อเร็ว ๆ นี้) ระบบจะแสดงผลสรุปของ CPU ที่ติดตั้งไว้ที่มนุษย์อ่านได้เช่น:

Thread(s) per core:    2
Core(s) per socket:    2
Socket(s):             1

ขนาดของที่อยู่จริงยิ่งดีขึ้นหรือยิ่งใหญ่กว่า
Qian Chen

@ElgsQianChen: โดยปกติยิ่งยาวยิ่งดี ดูว่าโลกย้ายจากซีพียู 8 บิตเป็น 16 บิตเป็น 32 บิตและจากนั้นเป็น CPU 64 บิต จำนวนบิตนั้นคือ "ขนาดที่อยู่"
grawity

ดูเหมือนว่าฉันเห็นขนาดร่างกายที่หลากหลายเช่น 36 บิต 40 บิตและ 46 บิต ขนาดเสมือนดูเหมือนจะเป็น 48 บิตเสมอ เหตุใดจึงมีขนาดทางกายภาพที่แตกต่างกันและสิ่งที่พวกเขาหมายถึงเมื่อพวกเขาจะสั้นหรือยาวกว่า?
Qian Chen

9

นี่คือสคริปต์แบบอินไลน์ awk ในการพิมพ์และดึงข้อมูลที่เกี่ยวข้องจาก/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" \
 }'

เอาต์พุตสำหรับเซิร์ฟเวอร์ประสิทธิภาพสูง:

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

เอาต์พุตสำหรับแล็ปท็อป 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

0

มันหมายถึง:

  1. คุณจริงมี i3 CPU หนึ่ง quad-core ในระบบของคุณ

  2. "ซีพียู quad-core i3 หนึ่ง" นี้มีคอร์สี่ตรรกะในนั้น


2
จริงๆแล้วมันเป็นซีพียูแบบ dual-core i3 ที่มีสี่คอร์แบบลอจิคัล
David Schwartz
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.