3

Я делаю сценарий PowerShell, чтобы получить топ-10 процессов, которые потребляют память, на основе значения рабочего набора (WS) Get-Process. Я запускаю следующую строку и получаю результаты, отлично выглядит, но когда я проверяю в диспетчере задач, я не получаю те же значения. Даже порядок отличается.

Get-Process | Sort WS -Descending | Select Name,WS -First 10

Получение этого:

PowerShell

Тогда диспетчер задач имеет это:

Диспетчер задач

Какие еще расчеты мне нужно сделать? Кто-нибудь может объяснить?

Спасибо за совет.

PS: ОС на португальском.

2 ответа2

4

Хорошо, только что понял, что происходит. Столбец "Память" по умолчанию в диспетчере задач фактически представляет частный рабочий набор, а не рабочий набор из Powershell, который представляет личную и общую память с другим процессом. Просто включил столбец «Память - рабочий набор» в диспетчере задач и он совпадает.

Диспетчер задач

Очевидно, что значения в Powershell указаны в байтах, их нужно вычислить в Мб.

Эта страница была также полезна:

http://windows.microsoft.com/en-us/windows/what-task-manager-memory-columns-mean#1TC=windows-7

2

(Общий) рабочий набор и частный рабочий набор - это две разные вещи.

Дополнительная информация Несколько слов об использовании памяти или: рабочий набор или частный рабочий набор.

Чтобы получить приватный рабочий набор через Get-Process в PowerShell, вы можете использовать "PrivateMemorySize":

Get-process | Sort PrivateMemorySize -Descending | Select Name,PrivateMemorySize -First 10

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .