8 Observações sobre o parâmetro memtype em itens proc.mem

Visão geral

O parâmetro memtype é suportado no Linux, AIX, FreeBSD, e Solaris.

Os três tipos mais comuns do 'memtype' são suportados em todas as plataformas: pmem, rss e vsize. Adicionalmente, tipos específicos de cada plataforma serão nelas suportados.

AIX

Os valores a seguir são suportados para o parâmetro 'memtype' nesta plataforma.

Valor suportado Descrição Fonte em estrutura procentry64 Tentativas para compatibilizar
vsize (( - valor padrão)) Tamanho da memória virtual pi_size
pmem Percentual da memória real pi_prm ps -o pmem
rss Configuração de tamanho residente pi_trss + pi_drss ps -o rssize
size Tamanho do processo (código + dados) pi_dvm "ps gvw" SIZE column
dsize Tamanho do dado pi_dsize
tsize Tamanho de texto (código) pi_tsize "ps gvw" TSIZ column
sdsize Tamanho do dado na biblioteca compartilhada pi_sdsize
drss Tamanho do conjunto residente de dados pi_drss
trss Tamanho do conjunto residente de texto pi_trss

FreeBSD

Os valores a seguir são suportados para o parâmetro 'memtype' nesta plataforma.

Valor suportado Descrição Fonte em estrutura kinfo_proc Tentativas para compatibilizar
vsize Tamanho da memória virtual kp_eproc.e_vm.vm_map.size or ki_size ps -o vsz
pmem Percentual da memória real calculado a partir do rss ps -o pmem
rss Tamanho do conjunto residente kp_eproc.e_vm.vm_rssize or ki_rssize ps -o rss
size (( - valor padrão)) Tamanho do processo (código + dados + pilha) tsize + dsize + ssize
tsize Tamanho do texto de código kp_eproc.e_vm.vm_tsize or ki_tsize ps -o tsiz
dsize Tamanho dos dado kp_eproc.e_vm.vm_dsize or ki_dsize ps -o dsiz
ssize Tamanho da pilha kp_eproc.e_vm.vm_ssize or ki_ssize ps -o ssiz

Linux

Os valores a seguir são suportados para o parâmetro 'memtype' nesta plataforma.

Valor suportado Descrição Fonte em /proc/<pid>/status file
vsize (( - valor padrão)) Tamanho da memória virtual VmSize
pmem Percentual da memória real (VmRSS/total_memory) * 100
rss Tamanho do conjunto residente VmRSS
data Tamanho do segmento de dados VmData
exe Tamanho do segmento de código VmExe
hwm Pico de tamanho do conjunto residente VmHWM
lck Tamanho da memória bloqueada VmLck
lib Tamanho das bibliotecas compartilhadas VmLib
peak Pico de tamanho de memória virtual VmPeak
pin Tamanho das páginas pinadas VmPin
pte Tamanho das entradas na tabela de páginas VmPTE
size Tamanho do código de processo + dados + pilha de segmentos VmExe + VmData + VmStk
stk Tamanho da pilha de segmentos VmStk
swap Tamanho do espaço de swap utilizado VmSwap

Observações para o Linux:

  1. Nem todo valor de 'memtype' será suportado em kernels antigos do Linux. Por exemplo, o kernel Linux 2.4 não suporta hwm, pin, peak, pte e swap.
  2. Nós temos informações que o auto-monitoramento do Zabbix Agent ativo identificou processos com proc.mem[...,...,...,...,data] mostrando que o valor é 4kB maior do que o apresentado em VmData no arquivo de status do agente /proc/<pid>/status . No momento do auto-monitoramento o segmento de dados do agente aumentou em 4kB, retornando em seguida para o tamanho anterior.

Solaris

Os valores a seguir são suportados para o parâmetro 'memtype' nesta plataforma.

Valor suportado Descrição Fonte em estrutura psinfo Tentativas para compatibilizar
vsize (( - valor padrão)) Tamanho da imagem do processo pr_size ps -o vsz
pmem Percentual da memória real pr_pctmem ps -o pmem
rss Tamanho do conjunto residente
Que pode ser subestimado, conforme descrição do rss em "man ps".
pr_rssize ps -o rss