Ищу способ быстро (через PowerShell Get-Counter
) покажет мне нагрузку ввода-вывода (предпочтительнее байтов IOPS) на определенном физическом диске, а также информацию о доступе к файлу - предположительно путь к файлу.
По сути, мне нужна информация, предлагаемая в Монитор ресурсов на вкладке Диск где он показывает, какой файл потребляет сколько дисковой активности. В RM это байты, но, надеюсь, с использованием соответствующих счетчиков в Get-Counter
мы можем показать количество операций ввода-вывода в секунду для каждого файла.
Все это делается в попытке отследить количество операций ввода-вывода в секунду, используемых конкретным файлом виртуального диска HyperV в общей папке SMB. Мне нужен быстрый способ Powershell для отображения дисковых операций ввода-вывода в секунду для каждой виртуальной машины с использованием встроенных компонентов MS, таких как perfmon.
Немного предыстории: виртуальные машины HyperV - это роли виртуальных машин в отказоустойчивом кластере, осуществляющие доступ к одному из двух различных общих файловых ресурсов SMB 3.0; сами общие ресурсы являются ролями отказоустойчивого кластера, предоставляемыми SOFS. Информация о диске берется из счетчика «PhysicalDisk» на узлах SOFS.
Я уже могу видеть общее количество операций ввода-вывода в секунду на диск: Get-Counter -ComputerName stor2 '\PhysicalDisk(26)\Disk Transfers/sec' -Continuous
; но я хотел бы расширить это, чтобы показать мне, какая виртуальная машина выполняет, сколько операций ввода-вывода в секунду.
Заранее спасибо этому замечательному сообществу!
Вы не можете этого сделать. Невозможно вернуться к владельцу IRP в стеке хранилища Windows: у вас должен быть (довольно сложный) сторонний драйвер фильтра и связанная с ним упаковка. Поставщики SAN, например, Тинтри, которые реализуют строгий QoS, делают аналогичные вещи, но имеют дело с файлами, а не с протоколами блокировки.