У меня есть сервер с установленным Windows Server Core, и я пытаюсь достичь паритета возможностей устранения неполадок с помощью resmon, который доступен только в установке с графическим интерфейсом Windows Server. Я уверен, что смогу определить узкое место в ресурсах в Core, но отсутствие доступа к resmon ограничивает мою способность определять источник узкого места.
Есть ли какой-либо метод PowerShell, cmd или удаленного графического интерфейса для определения использования дисковых ресурсов процессом и файлом? То же самое касается сети и определения того, какую пропускную способность использует каждое соединение и процесс.
В Linux есть программы командной строки, такие как iftop и iotop, которые могут представлять эти данные в терминале ssh; что-то подобное на Server Core могло бы работать.
Ниже приведены изображения интересующей меня информации. Было бы здорово получить эту информацию из Windows Server Core в режиме реального времени или близко к нему.
Удаленный perfmon - один из возможных вариантов. Поскольку вы цитируете цели, основанные как на графическом интерфейсе, так и на интерфейсе командной строки, я не уверен, что вас интересует больше всего. Существует множество классов WMI для счетчиков производительности (список с gwmi -list Win32_PerfFormattedData* |select name
), который может показать это в интерфейсе командной строки или для использования со скриптами. Вот быстрая функция, которая покажет вам основных потребителей, пока вы не нажмете / CTRL-C.
function topIO {
while ($true) {
gwmi Win32_PerfFormattedData_PerfProc_Process | select name,idprocess,IODataBytesPersec | sort -desc IODataBytesPersec | select -first 5
start-sleep 1
""
}
}
Вывод
name idprocess IODataBytesPersec
---- --------- -----------------
csrss 8172 45
_Total 0 45
svchost#3 4480 0
svchost#4 1744 0
svchost#1 9576 0
Resili... 5276 281
_Total 0 281
svchost#2 1792 0
svchost#3 4480 0
svchost 1480 0
svchost#2 1792 0
svchost#3 4480 0
svchost#1 9576 0
Squeez... 7436 0
svchost 1480 0
Что касается использования сети для каждого процесса и подключения, я обнаружил, что графический интерфейс TCPView работает в Windows Server Core. TCPView можно загрузить с https://technet.microsoft.com/en-us/sysinternals/bb897437
После загрузки скопируйте tcpview.exe на сервер предпочтительным способом (c $ admin share, командлет Copy-Item и т. Д.). Откройте удаленный рабочий стол с сервером и запустите tcpview.exe
К сожалению, tcpvcon не предоставляет данные об использовании в командной строке.
У вас должна быть возможность удаленно подключить Performance Monitor - ссылка на сайт
Вы можете установить любые дополнительные счетчики и получать эту информацию прямо со своей рабочей станции.