我正在寻找一种方法来快速(通过 PowerShell Get-Counter)向我显示某个物理磁盘上的 I/O 负载(IOPS 优于字节),以及文件访问信息 - 大概是文件路径。
基本上我想要的是在“磁盘”选项卡中的“资源监视器”中提供的信息,它显示哪个文件消耗了多少磁盘活动。在 RM 中,它是字节,但希望使用适当的计数器Get-Counter我们可以显示每个文件的 IOPS。
所有这些都是为了跟踪 SMB 文件共享上的特定 HyperV 虚拟磁盘文件正在使用的 IOPS。我想要一种使用内置 MS 组件(例如 perfmon)显示每个 VM 的磁盘 IOPS 的快速 Powershell 方式。
小背景:HyperV VM 是故障转移群集中的 VM 角色,访问两个不同的 SMB 3.0 文件共享之一;共享本身是 SOFS 提供的故障转移群集角色。磁盘信息来自 SOFS 节点上的“PhysicalDisk”计数器。
我已经很能看到每个磁盘IOPS总数:Get-Counter -ComputerName stor2 '\PhysicalDisk(26)\Disk Transfers/sec' -Continuous; 但我想扩展它以显示哪个 VM 正在执行多少 IOPS。
在此先感谢这个伟大的社区!
你不能那样做。没有办法在 Windows 存储堆栈中遍历 IRP 所有者:您必须有一个(非常复杂的 BTW)第 3 方过滤器驱动程序和相关的包装。SAN 供应商说,实施严格的 QoS 的 Tintri 也做类似的事情,但他们处理文件而不是块协议。