Comment savoir si un processus est lié au processeur, à la mémoire ou au disque?
performance
ssanj
la source
la source
Réponses:
Cela nécessite du vaudou. Ça dépend. Exemple:
S'il y a assez de mémoire et que les disques ne semblent pas trop occupés, cela peut être lié au processeur. Regardez l'utilisation du processeur et si sa limite à 100% est liée au processeur. Si ce n'est pas le cas, il existe un goulot d'étranglement artificiel dans la mise en œuvre. Par exemple, sur un processeur double cœur, un processus à un seul thread ne dépassera pas 50% de l'utilisation du processeur.
Si le processeur et la mémoire sont disponibles, mais que les disques sont très occupés ou que la latence des entrées / sorties semble élevée, il est probable que ses entrées / sorties soient liées. Voir si l'ajout de disques supplémentaires (RAID?) Peut aider.
Aucune de ces réponses? Vérifiez la mémoire disponible.
Assez de mémoire? Il peut y avoir un goulot d'étranglement artificiel dans le processus lui-même, c'est-à-dire que quelqu'un a oublié de supprimer un sommeil (1)? Naah ce n'est pas si facile d'habitude. ;)
Il y a une raison pour laquelle nous avons tout un laboratoire pour les ingénieurs de performance dans la plupart des entreprises traitant de produits sensibles à la performance!
Utilisez des outils tels que sar, vmstat, iostat, oprofile, lockstat, dtrace, des outils de contrôle de performances spécifiques à un produit, etc., pour résoudre les problèmes de performances.
la source
check out
iotop
, peut être utilela source
Un outil qui peut être utile pour vérifier en temps réel un certain nombre de statistiques de processus (mémoire, utilisation du processeur, E / S, etc.) est htop . Il ne remplace pas les outils plus spécialisés nommés par Sudhanshu, mais pourrait être un bon début.
la source
Outre les autres outils mentionnés, exécutez
ps l PID
en insérant l'identifiant de processus correspondant ou consultez les colonnes STATE et WCHAN en haut ou en haut.S'il est à l'état D (pour le disque), le fichier IO est en cours. Cela peut être dû au fait qu’il lit beaucoup de fichiers ou qu’il utilise beaucoup de mémoire et d’échange. La colonne WCHAN vous indiquera la fonction du noyau à l'intérieur. googler pour eux ou demander ici peut vous donner une idée de ce qu’ils veulent dire.
S'il est à l'état R (exécution), il utilise le processeur dans l'espace utilisateur, c'est-à-dire qu'il est lié au processeur à ce moment-là.
S'il est en mode S (veille), il fait partie d'un appel système interruptible, ce qui peut signifier qu'il est soit en train de dormir, soit en train d'attendre le trafic réseau ou un verrou. Encore une fois, regarder le wchan spécifique vous en dira plus.
Voir aussi Qu'est-ce que le "canal en attente" d'un processus?
la source
Exécuter
top
et regarder la ligne d'utilisation du processeur. Un utilisateur élevé% indique qu'il est lié au cpu. Une attente élevée% indique qu'il est lié à l'IO.la source