Valor de memória negativa Get-Process do Powershell

7

Eu estava fazendo algumas verificações com o cmdlet Powershell Get-Process e obtive alguns valores estranhos sobre alguns processos. Testei em um servidor com uma Instância do SQL Server em execução e consumindo 3 GB + RAM como relatado pelo Monitor de Recursos e, ao executar o Get-Process, obtive valores negativos para o WorkingSet no processo do SQL Server, outro processo está consumindo 2 GB + do PrivateMemorySize valor negativo na PM.

Abaixo estão as capturas de tela dos resultados.

Osistemaoperacionalestáemportuguês,desculpe.

Powershell:

Verifique o sqlservr e o último scvhost ...

Felizmente, meu script usa o WMI (classe Win32_Process) para obter as informações do processo, e os valores estão corretos e tudo corresponde ..

É um bug? Talvez com grandes valores? Estou usando o Powershell v3.

    
por esserafael 27.08.2014 / 22:30

1 resposta

9

Este é um servidor x64? Nesse caso, é possível que este post do blog explique seu problema. Aparentemente, isso tem a ver com a maneira como o processo get lê a memória dos sistemas x64:

The reason the poster was seeing negative numbers is fairly simple: the WS property is aliased to WorkingSet, but WorkingSet is a 32-bit value. In the poster’s case, the working set size overflowed the 32-bit value, resulting in a negative number being displayed.

A solução de acordo com o blog é, no final, reforçar a formatação do resultado da consulta:

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

    
por 27.08.2014 / 23:17