J'exécute un processus dans un serveur Ubuntu à 4 noyaux. Cependant, la top
commande indique que l'utilisation du processeur est de 799% tout le temps.
Comment cela est-il possible? Je sais que pour les processeurs multicœurs, plus de 100% d'utilisation du processeur est attendu, mais 799% est une valeur très élevée.
Quelqu'un peut-il m'expliquer pourquoi et quand cela pourrait arriver?
Modifier:
Selon les suggestions de Gregory MOUSSAT, en utilisant htop, je me suis mis à suivre:
linux
ubuntu
multi-core
top
Arpssss
la source
la source
Réponses:
L'échelle utilisée
top
est de 100% lorsqu'un noyau est pleinement utilisé. Ou lorsqu'un noyau représente 20% et un second 80%. Cela conduit à des résultats étranges sur les ordinateurs multicœurs car il peut facilement dépasser 100%.Si vous avez 8 cœurs, vous
top
pouvez afficher de 0% (système inactif) à 800% (puissance maximale).Votre programme utilise simplement vos 4 cœurs avec hyperthreading (donc 8 cœurs virtuels) à leur capacité maximale. Donc top vous donne presque 8 x 100% = 800%.
Vous ne pouvez pas explicitement dire à la machine virtuelle d'utiliser un seul thread, elle utilisera plusieurs threads pour effectuer son travail, même si vous n'utilisez qu'un seul thread dans votre application.
Vous pouvez utiliser l'
htop
utilitaire comme une meilleuretop
alternative. Votre programme utilisera tous les 8 cœurs.la source
htop