特定の物理ディスクのI/O負荷(バイトよりもIOPSが望ましい)をファイルアクセス情報(おそらくファイルパス)とともにすばやく(PowerShell _Get-Counter
_を介して)表示する方法を探しています。
基本的に私が欲しいのは [ディスク]タブのリソースモニター で提供される情報です。ここでは、どのファイルがどのくらいのディスクアクティビティを消費しているかを示します。 RMではバイトですが、うまくいけば_Get-Counter
_の適切なカウンターを使用して、ファイルごとにIOPSを表示できます。
これはすべて、SMBファイル共有上の特定のHyperV仮想ディスクファイルによって使用されているIOPSを追跡するために行われます。 perfmonなどの組み込みMSコンポーネントを使用して、VMごとのディスクIOPSを表示するPowershellの簡単な方法が必要です。
背景が少ない:HyperV VMは、フェイルオーバークラスター内のVMの役割であり、2つの異なるSMB3.0ファイル共有のいずれかにアクセスします。共有自体は、SOFSによって提供されるフェールオーバークラスターの役割です。ディスク情報は、SOFSノードの「PhysicalDisk」カウンターから取得されます。
ディスクあたりの合計IOPSをすでに確認できます:Get-Counter -ComputerName stor2 '\PhysicalDisk(26)\Disk Transfers/sec' -Continuous
;しかし、これを拡張して、どのVMがいくつのIOPSを実行しているかを示したいと思います。
この素晴らしいコミュニティに事前に感謝します!
あなたはそれをすることはできません。 WindowsストレージスタックでIRP所有者をトラバースする方法はありません。(かなり複雑なところで)サードパーティのフィルタードライバーと関連するラッピングが必要です。 SAN厳密なQoSを実装するTintriのようなベンダーは同様のことを行いますが、プロトコルをブロックするのではなくファイルを扱います。