J'utilise une ps
commande dans le cadre d'un exercice pour identifier les processus exécutés plus longtemps qu'un seuil donné.
J'utilise le modèle suivant pour obtenir le temps écoulé pour une commande de processus connu:
ps -eo etime,command | grep <something to identify a process> | grep -v grep | awk '{print $1}'
Je remarque qu'avec des processus à court terme, la valeur etime (temps écoulé) prend le format minutes:seconds
et à partir de cela, je peux facilement déterminer la durée d'un processus.
Pour les processus très longs (jours), je ne comprends pas le format.
J'ai un processus de serveur MySQL qui htop
s'affiche comme fonctionnant pendant 126 heures.
L'exécution ps -eo etime,command | grep mysql | grep -v grep | awk '{print $1}'
me donne une valeur de 9-03:35:32
.
Ma meilleure supposition est que cela signifie 9 quelque chose, 3 heures, 35 minutes, 32 secondes. Je ne peux pas comprendre quelles sont les unités pour le 9.
Le processus en question a fonctionné 126 heures, environ 5,25 jours. Cela suggère que le 9 dans la sortie ci-dessus ne représente pas les jours. Ils ne peuvent pas non plus être des demi-journées car (9 * 12) heures + 3 heures + 35 minutes + 32 secondes est inférieur à 5 jours.
Comment interpréter la valeur de temps écoulé que je vois pour les processus de longue durée? Quelles unités accompagnent les 9 dans la sortie ci-dessus?
ps
affiche l'un ou l'autre selon les options que vous passez.etimes
au lieu deetime
et comparez les résultats.Réponses:
Selon la norme :
Donc, le 9 signifie les jours, que vous le croyiez ou non. Pourriez-vous mal interpréter la sortie de htop? Que dit top (qui a un format d'heure
minutes:seconds
)? Êtes-vous certain que le champ que vous regardez dans htop est équivalent à etime? (par exemple, cela pourrait-il signifier 126 minutes de temps processeur ?)la source