Ich habe ein paar Prozesse mit einem bekannten Namen, die alle in Dateien in einem einzigen Verzeichnis schreiben. Ich möchte die Anzahl der Lese- und Schreibvorgänge von Festplattenblöcken über einen bestimmten Zeitraum protokollieren (nicht nur Dateizugriff), um zu testen, ob eine Parameteränderung die I/O-Menge erheblich reduziert. Ich verwende derzeit iostat -d -p
, aber das ist auf die ganze Partition beschränkt.
Akzeptierte Antwort:
Mir ist klar, dass dies sowohl simpel als auch absurd klingen wird, aber wenn Sie
die Kontrolle über die fraglichen Apps haben (vielleicht in einer Testumgebung), könnten Sie
NUR dieses Verzeichnis auf einer eigenen Partition mounten, dann iostat
, usw. würde Ihnen
nur davon erzählen, und sonst nichts an dieser Stelle.
Wenn physische Laufwerke beteiligt sind, können Sie es mit einem Loopback
Mount à la
dd if=/dev/zero of=/bigdisk/LOOPFILE bs=1024m count=1024m # 1gb loopback file
mke2fs -j /bigdisk/LOOPFILE
mkdir /tmpcopy
mount -o loop /tmpcopy /bigdisk/LOOPFILE
cp -r -p $SPECIALDIR2MONITOR /tmpcopy
umount /tmpcopy
mount -o loop $SPECIALDIR2MONITOR /bigdisk/LOOPFILE,
Das würde nicht alle konkurrierenden Festplatten-I/Os vollständig entfernen, aber
ich bin mir ziemlich sicher, iostat
Die Ausgabe wäre spezifischer für Ihre Bedürfnisse.