Esta é uma tradução da página de documentação original em inglês. Ajude-nos a torná-la melhor.

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

Notes for AIX:

  1. When choosing parameters for proc.mem[] item key on AIX, try to specify narrow process selection criteria. Otherwise there is a risk of getting unwanted processes counted into proc.mem[] result.

Example:

\$ zabbix_agentd -t proc.mem[,,,NonExistingProcess,rss]
       proc.mem[,,,NonExistingProcess,rss]           [u|2879488]

This example shows how specifying only command line (regular expression to match) parameter results in Zabbix agent self-accounting - probably not what you want.

  1. Do not use "ps -ef" to browse processes - it shows only non-kernel processes. Use "ps -Af" to see all processes which will be seen by Zabbix agent.

  2. Let's go through example of 'topasrec' how Zabbix agent proc.mem[] selects processes.

\$ ps -Af | grep topasrec
       root 10747984        1   0   Mar 16      -  0:00 /usr/bin/topasrec  -L -s 300 -R 1 -r 6 -o /var/perf daily/ -ypersistent=1 -O type=bin -ystart_time=04:08:54,Mar16,2023

proc.mem[] has arguments:

proc.mem[<name>,<user>,<mode>,<cmdline>,<memtype>]

The 1st criterion is a process name (argument <name>). In our example Zabbix agent will see it as 'topasrec'. In order to match, you need to either specify 'topasrec' or to leave it empty. The 2nd criterion is a user name (argument <user>). To match, you need to either specify 'root' or to leave it empty. The 3rd criterion used in process selection is an argument <cmdline>. Zabbix agent will see its value as '/usr/bin/topasrec -L -s 300 -R 1 -r 6 -o /var/perf/daily/ -ypersistent=1 -O type=bin -ystart_time=04:08:54,Mar16,2023'. To match, you need to either specify a regular expression which matches this string or to leave it empty.

Arguments <mode> and <memtype> are applied after using the three criteria mentioned above.

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
Footnotes

1 Default value.