Jumlah prosesor di / proc / cpuinfo

26

Ketika saya sedang belajar tentang cpu load, saya jadi tahu bahwa itu tergantung pada jumlah core. Jika saya memiliki 2 core maka memuat 2 akan memberikan utilisasi cpu 100%.

Jadi saya mencoba mencari tahu core. (Saya sudah tahu bahwa sistem memiliki 2 core, 4 thread jadi 2 core virtual. Periksa di sini tentang prosesor ). Jadi saya berlari cat /proc/cpuinfo Yang memberi saya

processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 69
model name  : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
stepping    : 1
microcode   : 0x17
cpu MHz     : 774.000
cache size  : 4096 KB
physical id : 0
siblings    : 4
core id     : 0
cpu cores   : 2
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 dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips    : 3591.40
clflush size    : 64
cache_alignment : 64
address sizes   : 39 bits physical, 48 bits virtual
power management:

processor   : 1
vendor_id   : GenuineIntel
cpu family  : 6
model       : 69
model name  : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
stepping    : 1
microcode   : 0x17
cpu MHz     : 1600.000
cache size  : 4096 KB
physical id : 0
siblings    : 4
core id     : 0
cpu cores   : 2
apicid      : 1
initial apicid  : 1
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 dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips    : 3591.40
clflush size    : 64
cache_alignment : 64
address sizes   : 39 bits physical, 48 bits virtual
power management:

processor   : 2
vendor_id   : GenuineIntel
cpu family  : 6
model       : 69
model name  : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
stepping    : 1
microcode   : 0x17
cpu MHz     : 800.000
cache size  : 4096 KB
physical id : 0
siblings    : 4
core id     : 1
cpu cores   : 2
apicid      : 2
initial apicid  : 2
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 dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips    : 3591.40
clflush size    : 64
cache_alignment : 64
address sizes   : 39 bits physical, 48 bits virtual
power management:

processor   : 3
vendor_id   : GenuineIntel
cpu family  : 6
model       : 69
model name  : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
stepping    : 1
microcode   : 0x17
cpu MHz     : 774.000
cache size  : 4096 KB
physical id : 0
siblings    : 4
core id     : 1
cpu cores   : 2
apicid      : 3
initial apicid  : 3
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 dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips    : 3591.40
clflush size    : 64
cache_alignment : 64
address sizes   : 39 bits physical, 48 bits virtual
power management:

Sekarang saya benar-benar bingung. Ini menunjukkan 4 prosesor, dengan 2 core cpu. Adakah yang bisa menjelaskan hasil ini?

Setelah beban cpu saya adalah 3,70, Apakah ini beban maksimum? Masih pada saat itu cpu berada di <50%.

Bagaimana dengan turbo boost? Apakah semua inti turbo didorong atau hanya fisik?

Adakah metode di Ubuntu untuk mendapatkan frekuensi cpu saat ini untuk melihat apakah prosesornya menggunakan turbo boost atau tidak?

Muat ke 3,70 sekitar 100%. Tetapi penggunaan CPU tidak 100% karena waktu respons IO. Ini tidak berarti bahwa perangkat IO akan berada pada kecepatan maksimum, tetapi perangkat io akan 100% sibuk, yang terkadang memengaruhi aplikasi menggunakan IO ex: musik mungkin rusak.

Madhurendra Sachan
sumber
2
Hyper threading adalah alasannya Anda melihat 4 bukannya 2.
derobert
1
Baik dokumentasi dan cpuinfo memberi tahu Anda bahwa Anda memiliki dua inti cpu. Prosesor 0 dan 1 ada di inti 0 sedangkan prosesor 2 dan 3 ada di inti 1 (lihat baris core id). The physical idmemberi Anda chip (saya kira). Di sini, ini 0 untuk semua prosesor, jadi Anda hanya memiliki satu chip.
lgeorget
JADI apa yang memuat prosesor hingga 100% ... 2 atau 4?
Madhurendra Sachan
Apa itu prosesor di sini?
Madhurendra Sachan
Harap dicatat bahwa definisi utas Intel ("Utas, atau utas eksekusi, adalah istilah perangkat lunak untuk urutan instruksi dasar yang dapat dilalui atau diproses oleh satu inti CPU ") dapat membuat orang berpikir bahwa dengan 2 inti dan 4 utas, sebagaimana dinyatakan dalam spesifikasi, 2x4 = 8 utas sedang berjalan. Faktanya Anda memiliki total 4 utas dan 2 inti terlihat seperti 4. Definisi Teknologi Intel® Hyper-Threading lebih jelas: ia "memberikan dua utas pemrosesan per inti fisik " dan menjelaskan lebih baik bahwa sistem Anda melihat 4 prosesor / saudara kandung dari 2 core CPU dipasang satu chip
XavierStuvw

Jawaban:

35

Kata-kata "CPU", "prosesor" dan "inti" digunakan dalam cara yang agak membingungkan. Mereka merujuk pada arsitektur prosesor. Inti adalah unit independen terkecil yang mengimplementasikan prosesor tujuan umum; prosesor adalah kumpulan inti (pada beberapa sistem ARM, prosesor adalah kumpulan kelompok yang mereka sendiri adalah kumpulan inti). Sebuah chip dapat berisi satu atau lebih prosesor (chip x86 berisi prosesor tunggal, dalam pengertian ini kata prosesor ).

Hyperthreading berarti beberapa bagian inti digandakan. Sebuah core dengan hyperthreading kadang-kadang disajikan sebagai kumpulan dari dua "core virtual" - yang berarti bukan bahwa setiap core adalah virtual, tetapi bahwa jamak adalah virtual karena ini sebenarnya bukan inti yang terpisah dan mereka kadang-kadang harus menunggu sementara inti lainnya adalah memanfaatkan bagian bersama.

Sejauh menyangkut perangkat lunak, hanya ada satu konsep yang berguna hampir di mana-mana: gagasan eksekusi paralel. Jadi dalam kebanyakan manual perangkat lunak, istilah CPU dan prosesor digunakan untuk berarti setiap bagian dari perangkat keras yang mengeksekusi kode program. Dalam istilah perangkat keras, ini berarti satu inti, atau satu inti virtual dengan hyperthreading.

Dengan demikian topmenunjukkan Anda 4 CPU, karena Anda dapat memiliki 4 utas mengeksekusi pada saat yang sama. /proc/cpuinfomemiliki 4 entri, satu untuk setiap CPU (dalam arti itu). processorAngka - angka (yang merupakan jumlah entri ) sesuai dengan 4 utas ini.cpuNUMBER/sys/devices/system/cpu

/proc/cpuinfo adalah salah satu dari sedikit tempat di mana Anda mendapatkan informasi tentang perangkat keras apa yang mengimplementasikan rangkaian eksekusi ini:

physical id : 0
siblings    : 4
core id     : 0
cpu cores   : 2

berarti itu cpu0adalah salah satu dari 4 utas di dalam komponen fisik (prosesor) nomor 0, dan itu ada di inti 0 di antara 2 di prosesor ini.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
Penjelasan yang bagus Anda meninggalkan 3 pertanyaan Once my cpu load was 3.70, Is this maximum load? Still at that time cpu was at <50%., What about turbo boost ? Are all cores are turbo boosted or only physical ?&How to check frequency.
Madhurendra Sachan
@MADTerry Program mana yang melaporkan bahwa “cpu load adalah 3,70”, dalam istilah apa tepatnya? Apakah maksud Anda rata-rata beban? Apa yang Anda maksud dengan “cpu berada di <50%”? Mengenai Turbo Boost, saya tidak terbiasa dengan itu, tapi saya tidak mengerti mengapa mereka semua tidak didorong. Semua core bersifat fisik, kecuali jika Anda menjalankan dalam mesin virtual: seperti yang saya jelaskan dalam jawaban saya, dalam “core virtual”, bukan core yang virtual, melainkan pemisahannya.
Gilles 'SANGAT berhenti menjadi jahat'
beban rata-rata. uptimeoleh cpu saya maksud penggunaan cpu. saya mengerti mengapa. Tetapi bagaimana cara memeriksa frekuensi atau memeriksa apakah cpu turbo didorong?
Madhurendra Sachan
Saya juga berpendapat bahwa, dalam hal perangkat lunak tingkat tinggi, Anda lebih tertarik pada proses (lihat top, uptime). Unit perangkat keras mana yang berhubungan dengan proses pada akhirnya adalah masalah perangkat lunak tingkat rendah (kompilasi, sistem operasi). Laporan cpuinfo mengabstraksi fakta bahwa setiap prosesor fisik (salah satu dari beberapa CPU pada mati) dapat memperluas kekuatan komputasi dengan prestasi teknologi seperti multithreading. Ini akan menganggap 'apa pun' yang dapat menangani satu proses pada satu waktu sebagai prosesor. Dalam mata akuntansi cpuinfo, kemampuan perangkat mengarah pada jumlah total "prosesor"
XavierStuvw
13

Jawab saja pertanyaan pertamamu. Dalam output cat /proc/cpuinfoAnda dapat melihat informasi berikut: -

physical id : 0
siblings    : 4
core id     : 0
cpu cores   : 2

Anda dapat melihat hitungan siblings is 4dan cpu cores is 2. cpu coresmenjadi 2 adalah jumlah total inti dalam prosesor yang dapat diperiksa dari spesifikasi yang diberikan dalam URL intel yang Anda berikan. Demikian pula siblingsyang ditentukan oleh jumlah utas yang disediakan oleh HTT intel.

Demikian pula, untuk id fisiknya 0yang menunjukkan hanya ada satu chip prosesor dan untuk id inti Anda dapat melihat 0 and 1bahwa ada 2 core dalam prosesor.

Pembaruan: Menambahkan jawaban untuk pertanyaan lain.

Bagaimana dengan turbo boost? Apakah semua inti turbo didorong atau hanya fisik?

Baiklah, saya katakan, semua core aktif dikuatkan dengan turbo. Hai teman, Anda harus memeriksa contoh-contoh oleh Wikipedia kami yang tercinta . Dijelaskan dengan perhitungan juga.

Any method in ubuntu to get current cpu freq. if processor is on turbo boost or not.

Turbo boost atau tidak Anda dapat detail freq di output lscpu. Dan untuk output yang disempurnakan: -

lscpu | grep Hz
pemula
sumber
Jawaban singkat & cepat tetapi dapatkah Anda menjelaskan 3 sisanya?
Madhurendra Sachan
@ MadTerry terima kasih tetapi yang lain saya tidak jelas, akan melakukan riset dan mengedit jawaban saya. Sementara itu mari kita lihat apakah orang lain muncul.
beginer
1
+1 untuk lscpuperintah.
Arda
8

Anda dapat mencoba ini di terminal:

sudo lscpu

Ini akan memberi Anda gambaran tentang sifat fisik cpu Anda. Untuk turbo boost atau tidak, ini murni kontrol perangkat keras daripada OS itu sendiri, jadi kecuali Intel memiliki driver khusus untuk Linux yang dapat mengatur kecepatan prosesor Anda, tidak ada petunjuk yang kuat untuk memeriksa keadaan turbo boost (kecuali ada kode perintah untuk Periksa forum lain jika ada petunjuk tentang pertanyaan Anda).

Bagi saya, inilah yang saya dapatkan ketika saya mengetik perintah di atas. AMD saya mengatakan itu adalah quad core, tetapi inti fisik saya yang tercantum di sini hanya 2, dengan 2 utas per inti (menambahkan hingga 4 core). Saya menggunakan prosesor AMD A10 APU 5750m.

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    2
Core(s) per socket:    2
Socket(s):             1
NUMA node(s):          1
Vendor ID:             AuthenticAMD
CPU family:            21
Model:                 19
Stepping:              1
CPU MHz:               2500.000
BogoMIPS:              4990.51
Virtualization:        AMD-V
L1d cache:             16K
L1i cache:             64K
L2 cache:              2048K
NUMA node0 CPU(s):     0-3
pengguna220402
sumber
0

Beban sistem dan cpu% adalah dua cara berbeda untuk mengukur bagaimana daya cpu Anda digunakan.

  • beban sistem: berapa banyak proses per cpu telah dalam kondisi "siap" - dirata-ratakan dalam beberapa waktu. Hingga 1 * cpu (dalam kasus Anda hingga 4) sistem dianggap hampir idle (bandingkan dengan supermarket di mana rata-rata hanya satu pelanggan menunggu di setiap checkout). Anda mungkin tidak akan melihat adanya keterlambatan hingga 2 * cpu (dalam kasus Anda 8).
  • cpu%: berapa banyak CPU dapat melakukan pekerjaan sebenarnya dengan menjalankan suatu proses. Ini seperti sudut pandang kasir - atau lebih tepatnya supervisor mereka - mereka ingin mereka sibuk sepanjang waktu.

Kedua langkah tersebut saling terkait tetapi sama sekali tidak identik.

Guntbert
sumber
Saya tidak bertanya berbeda. Saya sudah membacanya di artikel. Pokoknya jawaban Anda bertentangan dengan jawaban Gilles.
Madhurendra Sachan
Di mana Anda melihat kontradiksi?
guntbert