Bagaimana komputer saya dapat menggunakan daya pemrosesan 300% PC?

64

Saya bermain-main dengan skrip dan baik saya terbawa (masih berjalan sekarang dan komputer saya belum mati) Saya menjalankan 17 iterasi skrip (dengan maksud menabrak komputer saya).

Melihat monitor aktivitas, saya melihat bahwa setiap proses Python memiliki pid yang unik dan mereka masing-masing memakan sekitar 17-20% dari kekuatan pemrosesan saya masing-masing ... Bagaimana itu mungkin? Apakah komputer saya secara ajaib menumbuhkan daya 200% dan melanggar hukum termodinamika di suatu tempat?

Enter image description here

Frankenmint
sumber
28
300% CPU = 3 CPU.
user20574
7
"Tingkat daya 400%"
Nitish
Mengingatkan saya pada semua episode Star Trek di mana mesin Warp kehabisan kendali ...
Daniel
Itu beberapa overclocking yang serius !!
Andrew Grimm

Jawaban:

101

Pada OS X, seperti * nix lainnya, beban CPU diukur per inti prosesor virtual. Jika Anda memiliki banyak - Anda dapat memiliki 200% dan lebih banyak kombinasi di bawah beban penuh.

Ini berbeda dari Windows dan mungkin beberapa sistem lain, di mana beban CPU dihitung per seluruh CPU (atau CPU - Saya tidak ingat bagaimana perilakunya ketika memiliki beberapa prosesor fisik).

Vasfed
sumber
21
Jawaban ini hanya akurat untuk beberapa platform! Sebagai contoh, Windows melaporkan total beban CPU, bukan sebagai persentase dari satu inti.
fabspro
2
Perlu dicatat bahwa representasi beban desimal (mis. 0,5 atau 2,4) sebagaimana dilaporkan oleh misalnya perintah uptime adalah tidak jumlah dari setiap persentase penggunaan inti tetapi lebih merupakan perkiraan dari berapa banyak inti yang Anda butuhkan untuk memproses setiap permintaan secara instan. Saya tidak yakin berapa banyak aplikasi ini menormalkan nilai-nilai.
Sebb
3
@Sebb the load average (LA) adalah jumlah rata-rata proses yang menunggu untuk dieksekusi, mereka mungkin sedang menunggu IO, tidak perlu cpu
Vasfed
3
@ Random832 dari man linux - man7.org/linux/man-pages/man1/uptime.1.html : "Sistem memuat rata-rata adalah jumlah rata-rata proses yang baik dalam keadaan runnable atau uninterruptable. Suatu proses dalam keadaan runnable adalah baik menggunakan CPU atau menunggu untuk menggunakan CPU. Sebuah proses dalam keadaan tidak terputus sedang menunggu beberapa I / O akses, mis. Menunggu disk. "
Vasfed
4
@slebetman load rata-rata bukan tentang waktu cpu, tetapi panjang antrian, misalnya lihat serverfault.com/a/524818
Vasfed
81

OS X dan Linux dan mungkin sistem operasi UNIX lainnya (atau lebih tepatnya alat yang paling umum pada sistem ini) menampilkan penggunaan CPU secara berbeda dari Windows. Pada Windows 100% berarti " semua Sumber daya CPU digunakan ”. Di Linux, itu berarti bahwa satu "utas" (seperti dalam Hyper-threading) benar-benar sibuk. Dengan demikian, dapat mencapai hingga (Number of Threads per Core) * (Number of Cores per CPU) * (Number of CPUs) secara keseluruhan.

Meskipun tidak sepenuhnya terkait, fakta menarik lainnya: Windows 10 semakin menormalkan penggunaan CPU menggunakan kondisi pelambatan CPU saat ini. Jadi CPU 2 GHz yang berjalan dibatasi pada 1 GHz hanya akan menjadi 50% sibuk.

Daniel B
sumber
7
Fakta yang menarik. :)
Hennes
7
Dan dengan Turbo Boost Windows akan melaporkan CPU berjalan lebih dari 100%
Martheen Cahya Paulo
Saya pikir itu cara BSD, bukan cara * nix secara umum. Saya melihat hal yang sama pada Mac dan kotak FreeBSD saya.
JDługosz
1
@ JDługosz Saya cukup yakin itu benar Linux, juga, setidaknya untuk beberapa alat-alatnya. Saya cukup yakin top berperilaku seperti ini, misalnya.
reirab
12

Seperti telah ditunjukkan dalam beberapa jawaban, Mac menunjukkan persentase CPU dari setiap proses sebagai 'persentase satu inti' sehingga Anda harus membaginya dengan jumlah inti [termasuk HT sebagai 'ganda']

Jika Anda tidak yakin berapa banyak inti virtual yang Anda miliki, Cmd ⌘ 3 akan memunculkan panel Monitor Sejarah CPU, di mana Anda bisa menghitung garis-garisnya;)

enter image description here

Tepat di bawah di mana Anda memotong gambar adalah informasi yang Anda butuhkan untuk menentukan dengan cepat total penggunaan aktual untuk Sistem :, Pengguna: & amp; Idle: Di situlah letak total sederhana Anda menjadi 100%

enter image description here

Tetsujin
sumber
4
sungguh nyata? 24 core ???? Saya hampir tidak punya 4 :) TIL memang terima kasih sudah berbagi ini !: puu.sh/nNrHU/f2abb55dc7.png
Frankenmint
5
ahh ... yeah - ini Mac Pro 5,1 - yang terakhir dari "parut keju". Dual Xeon 6-core [+ HT];)
Tetsujin
6

Monitor aktivitas tidak benar-benar mengukur kekuatan pemrosesan yang digunakan setiap aplikasi / proses, hanya memperkirakannya menggunakan algoritma. Jadi itu bisa tidak akurat ...

Juga, seperti yang ditunjukkan oleh @Vasfed, konsumsi CPU diukur per inti prosesor. Beberapa core dapat berarti penggunaan lebih tinggi dari 100% ...

Seorang geek sesekali tersandung pada fenomena ini dan terperangah sampai seorang Superuser datang membantu ...; D

rahuldottech
sumber
@underscore_d Ya ... tapi ketika saya menjawab, hanya ada satu jawaban lain. Jawaban lain (memang lebih baik) diposting kemudian ...
rahuldottech
cukup adil, saya harus memeriksa waktu melewati tingkat "hari" ... tidak seburuk itu: p
underscore_d