C'est un problème simple, mais la première fois que j'ai à le résoudre: trouver quels fichiers / inodes spécifiques sont les cibles du plus grand nombre d'E / S. J'aimerais pouvoir avoir un aperçu général du système, mais si je dois donner un PID ou un TID, je vais bien avec ça.
Je voudrais y aller sans avoir à faire un strace
programme sur qui apparaît dans iotop
. De préférence, utilisez un outil dans la même veine que iotop
celui qui détaille par fichier. Je peux utiliser lsof
pour voir quels fichiers mailman est ouvert mais cela n’indique pas quel fichier reçoit des E / S ni combien.
J'ai vu ailleurs où il était suggéré d'utiliser auditd
mais je préférerais ne pas le faire car cela placerait les informations dans nos fichiers d'audit, que nous utilisons à d'autres fins et cela semble être une question sur laquelle je devrais pouvoir faire des recherches. de cette façon.
Le problème spécifique que j'ai actuellement est lié au remplissage trop rapide des instantanés LVM. Depuis, j'ai résolu le problème, mais j'aurais aimé pouvoir le résoudre de cette façon plutôt que de simplement afficher ls
tous les descripteurs de fichiers ouverts /proc/<pid>/fd
pour voir lequel de ces descripteurs avait la croissance la plus rapide.
la source
fatrace
précédent, quelque chose comme le script que j’ai écrit devrait ont été offerts depuis qu'il est plus largement utilisable.Réponses:
Cette question comporte plusieurs aspects qui ont été partiellement traités à l'aide d'autres outils, mais il ne semble pas qu'il existe un seul outil fournissant toutes les fonctionnalités que vous recherchez.
iotop
Cet outil indique quels processus consomment le plus d’E / S. Mais il manque des options pour afficher des noms de fichiers spécifiques.
Par défaut, il fait ce qui est habituel
top
pour les processus qui se disputent le temps de la CPU, à l'exception des E / S de disque. Vous pouvez le persuader de vous donner une vue de 30 000 pieds en utilisant le-a
commutateur afin qu’il affiche une accumulation par processus, au fil du temps.i * outils (inotify, iwatch, etc.)
Ces outils permettent d'accéder aux événements d'accès aux fichiers, mais ils doivent être spécifiquement ciblés sur des répertoires ou des fichiers spécifiques. Ils ne sont donc pas très utiles pour tenter de retracer l'accès à un fichier non fiable par un processus inconnu, lors du débogage de problèmes de performances.
En outre, le
inotify
cadre ne fournit aucun détail sur les fichiers en cours d'accès. Grâce à ces outils, seul le type d'accès, donc aucune information sur la quantité de données échangée n'est disponible.iostat
Affiche les performances globales (lectures et écritures) en fonction de l'accès à un périphérique donné (disque dur) ou à une partition. Mais ne fournit aucune indication sur les fichiers générant ces accès.
blktrace
Cette option est trop faible. Il manque de visibilité sur les fichiers et / ou les inodes utilisés, uniquement les numéros de blocs bruts.
fatrace
Ceci est une nouvelle addition au noyau Linux et une bienvenue, ce n'est donc que dans les nouvelles distributions telles que Ubuntu 12.10. Il manquait à mon système Fedora 14 8-).
Il fournit le même accès que vous pouvez obtenir
inotify
sans avoir à cibler un répertoire particulier et / ou des fichiers.Ce qui précède vous montre l'ID de processus auquel le fichier accède et le fichier auquel il accède, mais il ne vous donne aucune utilisation de la bande passante globale. Par conséquent, chaque accès est indiscernable de tout autre accès.
Alors que faire?
L'
fatrace
option la plus prometteuse pour FINALEMENT consiste à fournir un outil qui peut vous montrer l'utilisation globale des E / S du disque en fonction des fichiers en cours d'accès, plutôt que des processus effectuant l'accès.Les références
la source
fatrace
et ne l’avaient pas beaucoup développé. J'apprécie vraiment votre effort supplémentaire pour vous assurer que les gens comprennent la situation dans son ensemble et souhaiter que je puisse faire plus que simplement invoquer à la hausse et donner des primes.yum
été insérée dans les bibliothèques de python3 pour une raison quelconque. J'ai fait unfile
dessus et on dirait que c'est un exécutable ELF.ldd
ne montre aucun lien verspython
et n'a pas non plusstrings
. Avez-vous une idée de la raison pour laquelle Python3 s’embête?iotop
et lesiostat
appels. De plus, j'ai compris que le problème en python, il semble (dans Fedora 18 au moins) qu'il existe unpython
script "power-usage-report" (rapport sur l'utilisation de l'alimentation), donc il neyum
faisait que répondre au fait qu'il sepython
trouve dans les dépendances du RPM. Donc, ce mystère particulier est résolu.Je n'ai pas encore reçu de réponse mais j'ai écrit ce script (à la fin) et il semble faire ce que je veux. Je ne l'ai pas testé sur d'autres systèmes et il est spécifique à Linux.
Fondamentalement, il ne dure
strace
que 30 secondes, filtre les appels système liés aux fichiers et s'efforce de supprimer le nom de fichier. Il compte le nombre d'occurrences de ce fichier dansstrace
et présente un résumé paginé à l'utilisateur. Ce n'est pas parfait, mais le nombre d'appels système à un fichier donné peut avoir une faible corrélation avec la quantité d'E / S qu'il exécute.Je ne l'ai pas complètement testé, mais si ça ne marche pas, ça devrait donner aux gens un endroit où commencer. Si cela se concrétise davantage, il peut être souhaitable de réécrire ceci dans un langage de niveau supérieur tel que python .
Si je n'obtiens pas de réponse dans un délai d'une semaine sur une méthode moins homogène (même s'il s'agit d'un autre outil qui compte uniquement les E / S d'un processus particulier), je l'accepterai comme ma réponse pour la postérité.
Scénario:
la source
Vous pouvez utiliser iwatch utilisant iWatch
iWatch est très simple à utiliser, supposons que vous souhaitiez observer l'évolution du système de fichiers / etc, il vous suffit de l'exécuter dans la console.
et iwatch vous dira si quelque chose change dans ce répertoire. Et si vous souhaitez être averti par email:
Dans ce cas, l’administrateur recevra une notification par courrier électronique (vous pouvez peut-être utiliser votre compte de passerelle sms afin que vous soyez immédiatement alerté à tout moment et n’importe où). Et si vous souhaitez surveiller plusieurs répertoires de différences, vous pouvez utiliser un fichier de configuration. Ce fichier de configuration est un fichier XML avec une structure facile à comprendre.
la source
inotify
est-ce correct? J’étais hésitant à utiliser quoi que ce soit,inotify
car vous devez lui donner des chemins (ce qui est essentiellement ce que je cherche) et j’étais inquiet de ce qu’il y aurait de frais généraux si je faisais simplement tout ce qui était en dessous/
Ce filtre peut-il être filtré par PID? Je pourrais peut-être tolérer une lenteur temporaire s'il est assez facile d'extraire quel programme le fait. Le site Web n'a pas non plus d'exemple de sortie de commande.