J'exécute un processus dans un serveur Ubuntu à 4 noyaux. Cependant, la commande top
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 sont attendus, 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:
L'échelle utilisée par 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, top
peut 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 indiquer à 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'utilitaire htop
comme meilleure alternative top
. Votre programme utilisera tous les 8 cœurs.