Назад | Перейти на главную страницу

Отрицательное значение памяти Powershell Get-Process

Я выполнял некоторые проверки с помощью командлета 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 помог мне без форматирования.