Come può il mio computer utilizzare il 300% di potenza di elaborazione del PC?


65

Sto giocando con una sceneggiatura e ben mi sono lasciato trasportare (è ancora in esecuzione in questo momento e tuttavia il mio computer non è ancora morto). Sto eseguendo 17 iterazioni dello script (con l'intenzione di bloccare il mio computer).

Guardando il monitor delle attività, vedo che ogni processo Python ha un pid unico e che sembrano assorbire circa il 17-20% della mia potenza di elaborazione ogni ... Come è possibile? Il mio computer ha aumentato magicamente la potenza del 200% e ha infranto le leggi della termodinamica da qualche parte?

Inserisci qui la descrizione dell'immagine


28
300% di una CPU = 3 CPU.
user253751

7
"I livelli di potenza sono del 400%"
Nitish

Mi ricorda tutti quegli episodi di Star Trek in cui i motori Warp sono fuori controllo ...
Daniel

Questo è un serio overclocking !!
Andrew Grimm,

Risposte:


101

Su OS X, come altri * nix, il carico della CPU viene misurato per core del processore virtuale. Se ne hai più, puoi avere il 200% e più combinati a pieno carico.

Questo è diverso da Windows e forse da altri sistemi, in cui il carico della CPU viene calcolato per l'intera CPU (o CPU - non ricordo come si comporta quando si hanno più processori fisici).


21
Questa risposta è accurata solo per alcune piattaforme! Ad esempio, Windows indica il carico totale della CPU, anziché come percentuale di un singolo core.
fabspro,

2
Vale la pena notare che la rappresentazione del carico decimale (es. 0,5 o 2,4) come riportato ad esempio dal comando uptime non è la somma di ogni percentuale di utilizzo del core ma piuttosto una stima di quanti core è necessario elaborare immediatamente ogni richiesta. Non sono sicuro di quanto questa app normalizzi i valori.
Sebb,

3
@Sebb la media del carico (LA) è il numero medio di processi in attesa di esecuzione, potrebbero essere in attesa di IO, non necessario cpu
Vasfed

3
@ Random832 da linux man - man7.org/linux/man-pages/man1/uptime.1.html : "La media del carico di sistema è il numero medio di processi che sono in uno stato eseguibile o ininterrotto. Un processo in uno stato eseguibile sta utilizzando la CPU o è in attesa di utilizzare la CPU. Un processo in uno stato ininterrotto è in attesa di un accesso I / O, ad esempio in attesa del disco. "
Vasfed,

4
La media di caricamento di @slebetman non riguarda il tempo della CPU, ma la lunghezza della coda, ad esempio vedi serverfault.com/a/524818
Vasfed

81

OS X e Linux e possibilmente altri sistemi operativi UNIX (o piuttosto gli strumenti più comuni su questi sistemi) visualizzano l'utilizzo della CPU in modo diverso da Windows. Su Windows 100% significa " tutte le risorse della CPU utilizzate". Su Linux, significa che un "thread" (come in Hyper-threading) è completamente occupato. Come tale, può arrivare fino a (Number of Threads per Core) * (Number of Cores per CPU) * (Number of CPUs)in totale.

Sebbene non del tutto correlato, un altro fatto interessante: Windows 10 normalizza ulteriormente l'utilizzo della CPU utilizzando lo stato di limitazione corrente della CPU. Quindi una CPU da 2 GHz in esecuzione a 1 GHz sarà occupata solo fino al 50%.


7
Fatto interessante. :)
Hennes,

7
E con Turbo Boost Windows segnalerà che la CPU è in esecuzione oltre il 100%
Martheen Cahya Paulo,

Penso che sia il modo BSD, non il modo * nix in generale. Vedo la stessa cosa sul mio Mac e sulla mia scatola di FreeBSD.
JDługosz,

1
@ JDługosz Sono abbastanza sicuro che sia vero anche per Linux, almeno per alcuni dei suoi strumenti. Sono abbastanza sicuro che topsi comporti in questo modo, per esempio.
Reirab

12

Come già sottolineato in diverse risposte, Mac mostra la percentuale di CPU di ciascun processo come "percentuale di un core", quindi dovresti dividerla per il numero di core [incluso HT come "doppio"]

Se non sei sicuro di quanti core virtuali hai, Cmd ⌘ 3 visualizzerai il riquadro Cronologia CPU di Activity Monitor, dove puoi semplicemente contare le strisce;)

inserisci qui la descrizione dell'immagine

Direttamente sotto il punto in cui hai tagliato l'immagine sono le informazioni necessarie per determinare rapidamente l'utilizzo totale effettivo per il sistema :, Utente: & Inattivo: in questo consiste il totale semplice al 100%

inserisci qui la descrizione dell'immagine


4
per davvero però? 24 core ???? Ne ho a malapena 4 :) TIL grazie davvero per averlo
Frankenmint

5
ahh ... sì - è un Mac Pro 5,1 - ultimo dei "gratin di formaggio". Dual 6-core Xeons [+ HT];)
Tetsujin

6

Il monitoraggio delle attività non misura effettivamente la potenza di elaborazione utilizzata da ogni app / processo, ma solo la stima utilizzando un algoritmo. Quindi può essere inaccurato ...

Inoltre, come sottolineato da @Vasfed, il consumo di CPU viene misurato per core del processore. Più core possono significare un utilizzo superiore al 100% ...

Un geek occasionalmente inciampa in questo fenomeno ed è sbalordito fino a quando un Superutente non viene in suo aiuto ...; D


@underscore_d Sì ... ma quando ho risposto, c'era solo un'altra risposta. Le altre (certamente meglio) risposte furono postate più tardi ...
rahuldottech,

abbastanza giusto, avrei dovuto controllare i tempi oltre il livello di "giorni" ... non è poi così male: p
underscore_d
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.