Meine Dokumentenverwaltungssoftware führt viele E / A-Vorgänge aus und ich möchte wissen, auf welche Dateien am meisten zugegriffen wird.
Gibt es ein Linux-Tool, mit dem ich alle paar Sekunden die Liste der am häufigsten verwendeten E / A-Dateien wie iotop, jedoch für Dateien, erhalten kann?
Das könnte so aussehen:
$ 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
Ich schaute in den man - Seiten von iotop
, lsof
, strace
und sie scheinen nicht ein solches Feature zu bieten.
monitoring
disk-usage
Nicolas Raoul
quelle
quelle
Antworten:
Ich denke, Ihre Metrik "Anzahl der Bytes" ist die falsche. Betrachten Sie zwei Zugriffe. Man liest 10 MB aus einer Datei. Der andere liest jedes 512. Byte der Datei für die ersten 10 MB. Die "Anzahl der Bytes" ist beim ersten Zugriff 512-mal höher als beim zweiten. Beide werden das E / A-Subsystem jedoch genau gleich belasten.
Wenn Sie "Anzahl der Operationen" akzeptieren können, die ungefähr so gut oder so schlecht ist wie "Anzahl der Bytes", dann haben Sie etwas, das Sie tatsächlich messen können. Das
inotifywatch
Programm macht das und es ist wahrscheinlich Teil desinotify-tools
Pakets Ihrer Distribution .Sie erfahren sofort, welche Dateien den Großteil der Zugriffe ausmachen, und können wahrscheinlich Ihr eigentliches Problem lösen.
quelle
Zunächst zur Verdeutlichung: Es gibt keine "E / A-verbrauchenden Dateien" . Dateien sind passive Objekte. Es sind Programme , die E / A auslösen (normalerweise durch Lesen / Schreiben von Dateien) und mehr oder weniger häufig auf Dateien zugreifen können. Der Durchsatz, den Sie in Bezug auf Dateien erwähnen, hätte also eigentlich nicht viel Sinn. Eine nützliche Information zu Dateien könnte sein, wie oft auf sie zugegriffen und sie geändert werden. Dies kann mit
notifywait -m /some/file/or/directory
(von inotify-Tools ) oder einem komplexeren System wie FAM oder Gamin überwacht werden .quelle