Comment obtenir (à partir du terminal) le nombre total de threads (par processus et total pour tous les processus)

25

J'ai essayé de le googler, mais je ne le trouve pas. Je cherche:

  1. nombre de threads dans le processus X

  2. nombre total de threads en cours d'exécution

posée NoSenseEtAl 19.12.2011 - 15:16
la source

4 réponses

38

Pour obtenir le nombre de threads pour un pid donné:

ps -o nlwp <pid>

Pour obtenir la somme de tous les threads exécutés dans le système:

ps -eo nlwp | tail -n +2 | awk '{ num_threads +=  } END { print num_threads }'
    
réponse donnée jcollado 19.12.2011 - 15:41
la source
6

Pour trouver le nombre de threads exécutant un seul processus, vous pouvez regarder /proc/<pid>/status . Il devrait lister le nombre de threads comme l'un des champs.

    
réponse donnée anaken78 28.02.2014 - 01:15
la source
2

Je base cette réponse autour de ps axms . ps est un excellent outil pour répertorier ce qui fonctionne.

Si vous souhaitez filtrer cela par un processus, vous pouvez essayer quelque chose comme ceci:

echo $(( 'ps axms | grep firefox | wc -l'  - 1))

Nous soustrayons 1 car grep apparaîtra dans cette liste.

Pour tous les threads en général, cela devrait fonctionner:

echo $(( 'ps axms | wc -l'  - 1))

Nous soustrayons un cette fois car il y a une ligne d'en-tête.

    
réponse donnée Oli 19.12.2011 - 15:31
la source
1

Pour obtenir le nombre total de threads (minuscules parties d’un processus exécutées simultanément), vous pouvez utiliser la commande ps -o nlwp <pid> Cela fonctionne tout le temps. Mais si vous préférez essayer de le voir dans un fichier. vous devriez probablement regarder les fichiers qui ont été créés pour chaque processus du système. Là, vous pouvez obtenir les détails ultimes du processus. Pour chaque processus, il existe un dossier créé dans /proc/<pid> , vous pouvez également voir tous les autres détails.

    
réponse donnée Laksith 21.09.2015 - 09:02
la source

Lire d'autres questions sur les étiquettes