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.