Comment puis-je dire ce qu'est un Linux processus est en attente pour?
Je suis en train de traquer la cause de goulots d'étranglement des performances dans une application que je suis de débogage sous Linux. Les différents processus impliqués semblent passer beaucoup de leur temps de blocage sur les demandes d'e/S, et je me demandais si quelqu'un savait tout Linux astuces qui vous permettent de voir pourquoi un particulier, le processus est bloqué/ressource qu'il attend? Est-il quelque chose d'utile dans /proc
par exemple?
InformationsquelleAutor andygeers | 2009-04-29
Vous devez vous connecter pour publier un commentaire.
Quelque procédé que ce soit, vous utilisez
top
pour en vérifier l'état. Ensuite, vous pouvez le lancer à travers treillis ou strace. Que devrait faire le détail de ce qui se passe. Si cela n'est pas possible, crochet il jusqu'à gdb. Des outils comme iostat pourrais vous montrer en général ce qui se passe (par exemple, si le disque est de goulot d'étranglement).Vous pouvez utiliser le
strace
de commande pour voir ce que votre processus est jusqu'à. Vous pouvez également trouver utile d'exécuterlsof
sur vos processus afin de voir quels fichiers et des supports qu'il utilise.strace est votre ami, parce que vous pouvez obtenir le temps passé dans chaque appel système, de plus, vous pouvez sélectionner les descripteurs de fichier et l'appel système qui vous intéressent. Mais vous pouvez également obtenir le soutien du noyau : jetez un oeil à latencytop