Я выполнял некоторые проверки с помощью командлета Powershell Get-Process и получил странные значения некоторых процессов. Я тестировал сервер с запущенным экземпляром SQL Server и потребляющим 3 ГБ + ОЗУ, как сообщает Resource Monitor, и при запуске Get-Process я получил отрицательные значения для WorkingSet в процессе SQL-сервера, другой процесс потребляет 2 ГБ + PrivateMemorySize и получил то же самое. отрицательное значение в личку.
Ниже приведены скриншоты результатов.
ОС на португальском языке, извините.
Powershell:
Проверьте sqlservr и последний scvhost ...
К счастью, мой сценарий использует WMI (класс Win32_Process) для получения информации о процессах, и значения там правильные, и все соответствует ..
Это ошибка? Может быть, с большими ценностями? Я использую Powershell v3.
Это сервер x64? Если да, то возможно этот блог объясняет вашу проблему. Очевидно, это связано с тем, как get-процесс читает системную память x64:
Причина, по которой на плакате были отрицательные числа, довольно проста: свойство WS имеет псевдоним WorkingSet, а WorkingSet - 32-битное значение. В случае плаката размер рабочего набора превышал 32-битное значение, в результате чего отображалось отрицательное число.
Решение, согласно блогу, в конечном итоге состоит в том, чтобы принудительно отформатировать результат запроса:
$process = “*SQL"*”
GPS $process | ft name, workingset64 –auto
Выбор WorkingSet64 вместо WorkingSet помог мне без форматирования.