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

8

Я проводил некоторые проверки с помощью командлета Powershell Get-Process и получил некоторые странные сведения о некоторых процессах. Я проверил на сервере с экземпляром SQL Server, который работает и использует 3 ГБ + ОЗУ, как сообщал монитор ресурсов, и при запуске Get-Process я получил отрицательные значения для WorkingSet в процессе SQL-сервера, другой процесс потребляет 2 ГБ + PrivateMemorySize и получил то же самое отрицательное значение в PM.

Ниже приведены скриншоты результатов.

Монитор ресурсов ОС на португальском, извините.

Powershell:

введите описание изображения здесь Проверь sqlservr и последний scvhost ...

К счастью, мой сценарий использует WMI (класс Win32_Process) для получения информации о процессах, правильные значения и все совпадают ..

Это ошибка? Может быть, с большими ценностями? Я использую Powershell v3.

esserafael
источник

Ответы:

11

Это сервер x64? Если это так, возможно, этот блог объясняет вашу проблему. Очевидно, это связано с тем, как get-process читает системную память x64:

Причина, по которой постер видел отрицательные числа, довольно проста: свойство WS имеет псевдоним для WorkingSet, но WorkingSet является 32-битным значением. В случае постера размер рабочего набора превысил 32-битное значение, что привело к отображению отрицательного числа.

Решение в соответствии с блогом, в конечном счете, заключается в обеспечении форматирования результата запроса:

$process = “*SQL"*” GPS $process | ft name, workingset64 –auto

Кейт
источник
Спасибо, я подозревал, что это что-то со значениями размеров и так далее. Кроме того, я могу получить правильные результаты только при локальном запуске команды на сервере. Если я запускаю удаленно с параметром -ComputerName, я получаю те же отрицательные результаты. Запуск с PSSession работает нормально.
esserafael
0

Выбор WorkingSet64 вместо WorkingSet помог мне без форматирования.

Джейми
источник