Moje oprogramowanie do zarządzania dokumentami wykonuje wiele operacji we / wy i chciałbym wiedzieć, do których plików ma największy dostęp.
Czy istnieje narzędzie dla systemu Linux, które co kilka sekund wyświetlałoby mi listę najczęściej używanych plików we / wy, takich jak iotop, ale dla plików?
Może to wyglądać następująco:
$ thetool
THRPUT R/W/SWP FILE
40MB/s write /usr/alfresco/repo/1283421/1324928.doc
12MB/s read /usr/alfresco/cache/3928dh29f8if
11MB/s read /tmp/239398hf2f024f472.tmp
Spojrzałem na łamach człowiekiem iotop
, lsof
, strace
i nie wydają się oferować taką funkcję.
monitoring
disk-usage
Nicolas Raoul
źródło
źródło
Odpowiedzi:
Myślę, że twoja metryka „liczba bajtów” jest niewłaściwa. Rozważ dwa wejścia. Jeden odczytuje 10 MB z pliku. Drugi czyta co 512. bajt pliku przez pierwsze 10 MB. „Liczba bajtów” będzie 512 razy wyższa dla pierwszego dostępu w porównaniu do drugiego. Obaj jednak dokładnie obciążą podsystem we / wy.
Jeśli możesz zaakceptować „liczbę operacji”, która jest prawie tak dobra lub tak zła jak „liczba bajtów”, masz coś, co możesz zmierzyć.
inotifywatch
Program robi to, i to prawdopodobnie część swojej dystrybucji winotify-tools
opakowaniu.Natychmiast powie ci, które pliki stanowią większość dostępów, i prawdopodobnie pozwoli ci rozwiązać rzeczywisty problem.
źródło
Przede wszystkim, aby wyjaśnić: nie ma czegoś takiego jak „pliki konsumujące IO” . Pliki są obiektami pasywnymi. Są to programy, które wyzwalają operacje wejścia / wyjścia (zwykle poprzez odczyt / zapis plików) i mogą uzyskiwać dostęp do plików częściej lub rzadziej. Więc przepustowość wspomnieć w odniesieniu do plików, które faktycznie nie mają większego sensu. Przydatną informacją dotyczącą plików może być to, jak często są one otwierane i modyfikowane. Można to monitorować za pomocą
notifywait -m /some/file/or/directory
(z narzędzi inotify ) lub bardziej złożonego systemu, takiego jak FAM lub Gamin .źródło