Windows-Server-2008-R2

Windows / NTFS - 是否可以測量文件操作的完成時間?

  • November 3, 2017

我正在尋找測量完成發布給 NTFS 驅動程序的文件操作(打開文件關閉文件刪除文件、寫入、讀取等)並能夠記錄它需要多少時間的可能性。我無法更改應用程序以測量應用程序內的時間。我感興趣的是在發出呼叫和返回應用程序執行之間經過了多少時間。

應用程序不斷寫入放置在 iSCSI 儲存上的 NTFS 卷。它還定期刪除最舊的文件。文件大小在 100 到 200 MB 之間。卷上始終有大約 10% 的可用空間。在某些時候,應用程序無法以正常速度寫入數據,因此它開始在記憶體中緩衝。然後發生了一些事情,緩衝區開始清空,一切恢復正常。

我測試了對物理捲和邏輯卷的 I/O 操作 - 在“中斷”期間我沒有發現異常

現在我想知道問題是在應用程序中還是在作業系統中的某個地方。出於這個原因,我在想如果我能夠記錄所有文件操作時間,我將能夠確定是系統需要比平時更多的時間,還是操作速度快並且應用程序內部有東西阻塞。

平台為 64 位 Windows Server 2008R2。我嘗試了 sysinternals 程序監視器,但它沒有記錄執行時間。問題可能需要幾個小時才會出現。

你能為這項工作推薦合適的工具嗎?

聘請某人為文件系統編寫單片或迷你過濾器驅動程序。您將能夠攔截來自特定應用程序的所有呼叫,並將它們直接跟踪到 NTFS 或任何其他 FS 驅動程序入口點。OSR 有一些數據攔截(?)套件或其他任何東西,也可以派上用場。

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

引用自:https://serverfault.com/questions/881566