O que significa quando PM (K) de ps obtém valores negativos?

2

Recebi os seguintes valores de PM negativos (A quantidade de memória paginável que o processo está usando, em kilobytes) quando executar o comando ps . O que significa quando os valores são negativos?

PS H:\> ps sqlservr

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
   5947    4145 -1218888    1537304   981 ...50.77   8344 sqlservr


PS H:\> ps sqlservr

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
   6060    4172 -1218876    1537316   981 ...52.08   8344 sqlservr


PS H:\> ps sqlservr

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
   6481    4258 -1218832    1537376   981 ...56.55   8344 sqlservr

O valor negativo pode ser o estouro de Int32 ? No entanto, as seguintes instruções mostra que a memória paginada foi de 4 TB? Que não é possível.

$m = [int32]::MaxValue
($m + ($m -1218832) + 2)/1024/1024
# returns 4094.83763122559 (GB)
    
por sjzls 31.08.2015 / 21:40

1 resposta

1

Valores negativos podem aparecer se o arquivo de página cresceu em algum momento no passado e, desde então, diminuiu. O SQL Server usa muita memória e muitas páginas, portanto, esse tipo de comportamento é bastante comum para o SQL Server.

Editar: Isso também pode ser por causa do tamanho do Int32 ... nesse caso, use a propriedade de 64 bits fornecida:

ps sqlserver | select WorkingSet64

ou

ps sqlserver | select PagedMemorySize64

A maioria das propriedades de memória tem versões correspondentes de 64 bits por esse motivo.

    
por 31.08.2015 / 22:26