Сначала необходимо ли понять, где botellneck? Проблема прикладного уровня? Доступ уровня Data? Какова Ваша схема доступа? Главным образом чтения? Или возможно главным образом записи?
Для прикладного уровня:
Для слоя данных существуют некоторые пути, за которыми можно следовать:
Это для мониторинга определенного процесса:
"\Process(<process name>)\Working Set" | get-counter -computer <computer>
Вывод в байтах, но вы можете преобразовать его в ГБ с помощью следующей команды:
"\Process(<process name>)\Working Set" | get-counter -computer <computer>
| ForEach {$_.CounterSamples} | ForEach {[math]::round($_.cookedvalue/1GB,2)}
Изменить:
Читая сообщение SO, я вижу, что вы пытаетесь просто получить любые процессы размером более 4 ГБ, не передавая конкретный процесс скрипту. Ниже приведен сценарий, который сделает это, а вот ссылка на статью в блоге Scripting Guy , в которой объясняется, как использовать командлет Get-Counter
:
"\Process(*)\Working Set" | Get-Counter -computer <computer>
| ForEach {$_.CounterSamples} | ? {$_.cookedvalue -gt 4294967296} | ft -AutoSize
Я знаю, что это старый вопрос, но все еще жив, показывает реальное использование 64-битной памяти в powershell:
get-process $Processname -computername $Computername | ft Name,ID,VirtualMemorySize64,PeakVirtualMemorySize64,WorkSet64,PeakWorkingSet64
и показывает использование памяти поверх gps |where {$_.workingset64 -gt 4000Mb }|ft name,pm,workingset64,id