Leia sobre o uso efetivo de RAM no Linux

Leia sobre o uso efetivo de RAM no Linux

Estou executando alguns programas em *nix dentro de um contêiner e tentando calcular de perto a quantidade de RAM que meu processo está usando. Entendo que esta informação deve estar em /proc/#{pid}/smaps. Tentei somar todos os PSS de todos smapsos arquivos em um sistema usando este script Ruby:https://gist.github.com/schneems/10025798

No entanto, estou vendo o uso da memória sendo relatado como inferior ao relatado pelo meu contêiner. Se eu passar a usar RSS, o valor se tornará muito mais alto (muito acima do que meu contêiner relata). Tenho quase certeza de que todas as informações de que preciso estão disponíveis /proc, só não sei como elas estão sendo relatadas para obter uma medição precisa. Minha pergunta é a seguinte: quais valores smapsdevo somar, já que o PSS por si só não é um bom indicador? Existe uma maneira melhor ou mais precisa de obter essas informações em uma máquina Linux?

Responder1

RSS é o tamanho do conjunto residente, ou seja, a memória global utilizada por um processo, incluindo todas as bibliotecas carregadas em tempo de execução. Uma única biblioteca pode ser usada várias vezes (pense nas bifurcações dos processos do Apache, por exemplo, cada subprocesso pode usar as mesmas bibliotecas). De acordo com o modelo de Memória Virtual, cada processo vê essa memória como sendo usada por si mesmo. Na realidade, o kernel mapeia os endereços de memória virtual para o endereço de memória exclusivo da biblioteca.

Por outro lado, o PSS soma cada USS (Unshared set size) de um processo. Pense nisso como a memória que um processo liberaria imediatamente se o eliminássemos. Ele não leva em consideração a memória compartilhada, mas apenas a memória que o processo pode usar exclusivamente.

Como consequência, o valor RSS superestima a memória efetiva utilizada. O PSS é mais preciso, se você levar em consideração o tamanho da memória das bibliotecas carregadas.

Mais detalhesaqui, especialmente no último parágrafo.

informação relacionada