24 de mai de 2016

A diferença entre VIRT, RES e SHR no comando top

VIRT

VIRT representa o tamanho virtual de um processo, que é a soma de memória
que ele [processo] está realmente usando (por exemplo RAM da placa de vídeo para o servidor X), os arquivos no disco que foram mapeados para ele [processo] (bibliotecas mais notavelmente compartilhadas), e memória compartilhada com outros processos. VIRT representa a quantidade de memória do programa que é capaz de acessar no momento presente.


RES

RES representa o tamanho residente, que é uma representação precisa da quantidade de memória física real consumida de um processo. Também corresponde diretamente à coluna MEM%. Será virtualmente sempre menor do que o tamanho VIRT, uma vez que a maioria dos programas dependem da biblioteca C.


SHR

SHR indica quanto do tamanho VIRT é realmente compartilhável (memória ou bibliotecas). No caso de bibliotecas, não significa necessariamente que toda a biblioteca é residente. Por exemplo, se um programa utiliza apenas algumas funções numa biblioteca, a biblioteca inteira é mapeada e serão contados em VIRT e SHR, mas apenas as partes do arquivo de biblioteca que contém as funções a ser utilizada irá, na verdade, ser carregado e ser contabilizado em RES.


Fonte: http://mugurel.sumanariu.ro/linux/the-difference-among-virt-res-and-shr-in-top-output/