53 votes

Pourquoi la commande "top" affiche-t-elle une utilisation du CPU de 799% ?

J'exécute un processus dans un serveur Ubuntu à 4 cœurs. Cependant, top montre que l'utilisation de l'unité centrale est de 799 % en permanence.

Comment cela est-il possible ? Je sais que pour les CPU multi-cœurs, on s'attend à une utilisation du CPU supérieure à 100%, mais 799% est une valeur vraiment élevée.

Quelqu'un peut-il m'expliquer pourquoi et quand cela peut se produire ?

Edita:

Selon la suggestion de Gregory MOUSSAT, en utilisant htop, j'ai obtenu ce qui suit :

enter image description here

69voto

Gregory MOUSSAT Points 861

L'échelle utilisée par top est de 100 % lorsqu'un cœur est entièrement utilisé. Ou lorsqu'un cœur est à 20 % et un autre à 80 %. Cela conduit à des résultats étranges sur les ordinateurs multicœurs, car il est facile de dépasser 100 %.
Si vous avez 8 cœurs, alors top peut s'afficher de 0 % (système au repos) à 800 % (pleine puissance).

Votre programme utilise simplement vos 4 cœurs avec hyperthreading (donc 8 cœurs virtuels) à leur capacité maximale. Le top vous donne donc près de 8 x 100 % = 800 %.

Vous ne pouvez pas dire explicitement à la JVM 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 le htop l'utilité en tant que meilleure top alternative. Vous verrez que votre programme utilise les 8 cœurs.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X