Windows / NTFS - Ist es möglich, die Abschlusszeit von Dateivorgängen zu messen?

8

Ich suche nach einer Möglichkeit, zu messen, wie viel Zeit erforderlich ist, um den an den NTFS-Treiber ausgegebenen Dateivorgang abzuschließen (Datei öffnen, Datei löschen, schreiben, lesen usw.) und ihn protokollieren zu können. Ich kann die Anwendung nicht ändern, um die Zeit in der App zu messen. Mich interessiert, wie viel Zeit zwischen dem Ausgeben eines Anrufs und der Rückkehr zur Anwendungsausführung vergeht.

Die Anwendung schreibt kontinuierlich auf ein NTFS-Volume, das sich im iSCSI-Speicher befindet. Außerdem werden routinemäßig älteste Dateien entfernt. Die Dateigrößen liegen zwischen 100 und 200 MB. Es gibt immer ungefähr 10% des freien Speicherplatzes auf dem Volume. Irgendwann kann die Anwendung keine Daten mehr in normalem Tempo schreiben, sodass die Speicherung im Speicher beginnt. Dann passiert etwas und der Puffer leert sich und alles kehrt zum Normalzustand zurück.

Ich habe E / A-Vorgänge sowohl auf physischen als auch auf logischen Volumes getestet. Während eines "Ausfalls" werden keine Anomalien festgestellt.

Jetzt möchte ich herausfinden, ob das Problem in der Anwendung oder irgendwo im Betriebssystem liegt. Aus diesem Grund dachte ich, wenn ich in der Lage bin, alle Zeitabläufe für Dateioperationen zu protokollieren, kann ich herausfinden, ob das System mehr Zeit als gewöhnlich benötigt oder die Operationen schnell sind und etwas in der Anwendung blockiert.

Plattform ist 64bit Windows Server 2008R2. Ich habe sysinternals process monitor ausprobiert, aber es wird keine Ausführungszeit protokolliert. Es kann einige Stunden dauern, bis das Problem auftritt.

Können Sie das richtige Werkzeug für diesen Job vorschlagen?

Mariusz Zieliński
quelle
Vielleicht finden Sie DiskMon nützlich.
Vlastimil Ovčáčík

Antworten:

4

Stellen Sie jemanden ein, der entweder einen monolithischen oder einen Minifiltertreiber für das Dateisystem schreibt. Sie können alle Anrufe von einer bestimmten App von Interesse abfangen und direkt zu NTFS oder anderen Einstiegspunkten für FS-Treiber verfolgen. OSR hatte ein Datenüberwachungskit (?) Oder was auch immer, könnte ebenfalls nützlich sein.

https://www.osr.com/dmk/

BaronSamedi1958
quelle
1
Vielen Dank für den Vorschlag, aber das würde zu viel Zeit in Anspruch nehmen. Ich bin überrascht, dass sich die meisten Tools nur auf die kurzfristige Echtzeitanalyse von Ereignissen konzentrieren und es Ihnen selten ermöglichen, Informationen zu protokollieren. Nur zuverlässige * eine, die ich gefunden habe, habe ich auf dem System gefunden und das ist Performance Monitor. Mein Plan ist es, mehrere Zähler zu korrelieren, in der Hoffnung, ein Muster zu finden. *) eine, die zu funktionieren scheint
Mariusz Zieliński