Question Comment mon ordinateur peut-il utiliser 300% de puissance de traitement PC?


Je joue avec un script et je me suis laissé emporter (ça tourne toujours et mon ordinateur n'est pas encore mort). Je cours 17 itérations du script (avec l'intention de planter mon ordinateur).

En regardant le moniteur d'activité, je constate que chaque processus Python a un pid unique et qu'il semble prendre environ 17 à 20% de ma puissance de traitement chacun ... Comment est-ce possible? Est-ce que mon ordinateur a augmenté de façon magique la puissance de 200% et brisé les lois de la thermodynamique quelque part?

Enter image description here


64
2018-03-20 11:48


origine


300% d'un processeur = 3 processeurs. - user20574
"Les niveaux de puissance sont de 400%" - Nitish
Cela me rappelle tous ces épisodes de Star Trek où les moteurs Warp sont hors de contrôle ... - Daniel
C'est un grave overclocking !! - Andrew Grimm


Réponses:


Sous OS X, comme les autres * nixes, la charge du processeur est mesurée par cœur de processeur virtuel. Si vous en avez plusieurs, vous pouvez combiner 200% et plus sous pleine charge.

Ceci est différent de Windows et peut-être de certains autres systèmes, où la charge du processeur est calculée pour chaque CPU (ou CPU) - je ne me souviens pas comment cela se comporte quand on a plusieurs processeurs physiques).


101
2018-03-20 11:53



Cette réponse n'est précise que pour certaines plates-formes! Par exemple, Windows indique la charge totale du processeur, plutôt que le pourcentage d'un seul cœur. - fabspro
Il est intéressant de noter que la représentation de la charge décimale (ex. 0.5 ou 2.4) telle que rapportée par exemple par la commande de temps de disponibilité est ne pasla somme de chaque pourcentage d'utilisation de base, mais plutôt une estimation du nombre de cœurs dont vous avez besoin pour traiter chaque demande instantanément. Je ne sais pas combien cette application normalise les valeurs. - Sebb
@Sebb la moyenne de chargement (LA) est le nombre moyen de processus en attente d'exécution, ils peuvent attendre IO, pas nécessairement cpu - Vasfed
@ Random832 de linux man - man7.org/linux/man-pages/man1/uptime.1.html : "Les moyennes de charge système sont le nombre moyen de processus qui peuvent être exécutables ou ininterrompus. Un processus dans un état exécutable utilise le processeur ou attend d’utiliser le processeur. Un processus en état ininterrompu attend certains I / O accès, par exemple attendre le disque. " - Vasfed
La moyenne de charge @slebetman ne concerne pas le temps CPU, mais la longueur de la file d'attente, par exemple voir serverfault.com/a/524818 - Vasfed


OS X et Linux et éventuellement d'autres systèmes d'exploitation UNIX (ou plutôt les outils les plus courants sur ces systèmes) affichent une utilisation différente de celle de Windows. Sur Windows 100% signifie "tout Ressources CPU utilisées ". Sous Linux, cela signifie qu'un "thread" (comme dans Hyper-threading) est complètement occupé. En tant que tel, il peut atteindre jusqu'à (Number of Threads per Core) * (Number of Cores per CPU) * (Number of CPUs) au total.

Bien que n'étant pas entièrement lié, un autre fait intéressant: Windows 10 normalise davantage l'utilisation du processeur en utilisant l'état de limitation actuel du processeur. Ainsi, un processeur 2 GHz étranglé à 1 GHz ne sera occupé qu'à 50%.


81
2018-03-20 12:37



Fait intéressant. :) - Hennes
Et avec Turbo Boost Windows indiquera que le processeur tourne à plus de 100% - Martheen Cahya Paulo
Je pense que c'est la manière BSD, pas la manière * nix en général. Je vois la même chose sur mon Mac et ma boîte FreeBSD. - JDługosz
@ JDługosz Je suis sûr que c'est vrai pour Linux, du moins pour certains de ses outils. je suis pratiquement sure top se comporte ainsi, par exemple. - reirab


Comme cela a déjà été souligné dans plusieurs réponses, Mac affiche le pourcentage de processeur de chaque processus en tant que «pourcentage d'un cœur». Vous devez donc diviser ce pourcentage par le nombre de cœurs [y compris HT en tant que «double»]

Si vous n'êtes pas certain du nombre de cœurs virtuels que vous avez,  Cmd ⌘    3  affichera le volet Historique du processeur du moniteur d'activité, où vous pourrez simplement compter les bandes;)

enter image description here

Ci-dessous, où vous avez coupé l'image, vous trouverez les informations dont vous avez besoin pour déterminer rapidement l'utilisation totale réelle de System :, User: & Idle: Là se trouve votre simple total à 100%

enter image description here


12
2018-03-20 14:34



pour de vrai cependant? 24 noyaux ???? J'ai à peine 4 :) TIL en effet merci pour ce partage !: puu.sh/nNrHU/f2abb55dc7.png - Frankenmint
ahh ... ouais - c'est un Mac Pro 5,1 - dernier des "râpes à fromage". Dual Xeons 6-core [+ HT];) - Tetsujin


Le moniteur d'activité ne mesure pas réellement la puissance de traitement utilisée par chaque application / processus, il estime simplement à l'aide d'un algorithme. Donc, cela peut être inexact ...

De plus, comme le souligne @Vasfed, la consommation de processeur est mesurée par cœur de processeur. Plusieurs cœurs peuvent signifier une utilisation supérieure à 100% ...

Un geek tombe occasionnellement sur ce phénomène et est sidéré jusqu'à ce qu'un super-utilisateur vienne à son aide ...; D


5
2018-03-20 11:56



@underscore_d Ouais ... mais quand j'ai répondu, il n'y avait qu'une autre réponse. Les autres réponses (certes meilleures) ont été postées plus tard ... - rahuldottech
assez juste, je devrais avoir vérifié les temps passé le niveau "jours" ... ce n'est pas si mal: p - underscore_d