Je vais chercher pourquoi nous recevons des alertes de swap critiques, et je trouverai quelque chose comme:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ SWAP COMMAND
14683 user1 30 10 16.0g 772m 744 S 0.3 0.3 277:24.87 6.5g MATLAB
14576 user1 30 10 8125m 1.1g 736 S 0.3 0.4 261:16.73 4.1g MATLAB
où la colonne TIME + est figée pour ces processus.
Ma question est, dans ce qui précède, qu'est-ce que cela implique?
Si je comprends bien, le temps d'arrêt signifie que c'est un processus dormant / non traité par le CPU. Cependant, l'exemple ci-dessus montre une utilisation du processeur de 0,3%, donc malgré le fait qu'il soit très petit, la colonne de temps ne devrait-elle pas continuer à incrémenter?
Ces processus sont-ils "terminés"? Dans ce cas, comment sont-ils nettoyés? L'utilisateur qui les a créés doit-il les reconnaître ou quelque chose pour que ces ressources soient libérées?
Réponses:
Si vous exécutez un faux travail tel que
sleep 120
, puis le regardez dans,htop
vous remarquerez que son état estS
aka "SLEEP" et que le processusTIME
reste à 0: 00.00 pour la durée.C'est parce que ce processus consomme 0 CPU, ce qui est l'intention de la
TIME
colonne. Il suit le temps CPU utilisé par un processus donné.Ce nombre peut parfois prêter à confusion si un processus peut s'exécuter sur plusieurs cœurs de processeur, car il peut sembler consommer plus de temps que ce qui est disponible. Tout ce qui se passe là-bas, c'est que si vous avez X nombre de cœurs, votre temps peut apparaître comme X * TIME.
la source
La raison pour laquelle vous pouvez obtenir une disparité de ce type est que la colonne TIME + ne prend pas en compte le temps processeur utilisé par les enfants morts du processus répertorié. Donc, j'imagine que les lignes que vous affichez indiquent une application qui est (éventuellement, rapidement) géniteurs d'enfants qui meurent presque immédiatement ..
So, the CPU usage is due to spawned children which do not count in the TIME+ column.
Vous pouvez changer de top pour faire du temps cumulé via le commutateur «S».Mais je pense que vous regardez les mauvais indicateurs pour ce que vous cherchez à enquêter.
strace -p <pid>
est votre ami ici et vous permettra de jeter un œil au processus en cours et à ce qu'il fait exactement.Strace prend une myriade d'options. certaines options notables incluent -f, -ff, -i, v, etc. Strace est un outil des plus utiles, il vaut donc mieux le faire
man strace
et rechercher par vous-même les options qu'il vous offre pour résoudre des problèmes comme celui-cila source