Solaris: como listar o espaço de troca por processo?

1

No Solaris, como posso descobrir quanto espaço de troca um determinado processo está ocupando? Ou melhor ainda, como posso listar todos os processos em execução classificados pelo uso do espaço de troca?

Estou perguntando isso particularmente para o Solaris. Eu não tenho o comando top disponível e nem prstat nem swap parecem ser capazes de fornecer informações sobre quanto espaço de troca um determinado processo está usando.

    
por dokaspar 03.02.2015 / 16:36

2 respostas

4

Você pode usar o comando:

pmap -S <pid>

para ver todas as estatísticas de memória, incluindo o uso de troca.

Com pouca magia de shell você pode envolvê-lo em um loop bash:

cd /proc
for i in *; do
    SWAP='pmap -S $i | grep ^total | awk '{ print $3; }''
    [ "xx$SWAP" != "xx" ] && echo "$SWAP bytes $i"
done | sort -n

A saída está em bytes, em um formato:

<number> bytes <pid>
    
por 03.02.2015 / 16:50
0

Não tenho certeza se $ 3 corresponde à coluna desejada, porque é a coluna "Kbytes" e não "Swap".

No cabeçalho, ele é o terceiro, mas não o grep total (por causa do espaço em branco no "total de Kb"):

Address  Kbytes    Swap Mode Mapped File

total Kb  240576  235028'
    
por 04.01.2017 / 12:48