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

Consulte os valores suportados para o parâmetro 'memtype' no AIX na tabela.

|Valor suportado|Descrição|Fonte na estrutura procentry64|Tenta ser compatível com| |---------------|-----------|---------- ----------|---------------------------| |vsize 1|Tamanho da memória virtual|pi_size|<| |pmem|Porcentagem de memória real|pi_prm|ps -o pmem| |rss|Tamanho do conjunto residente|pi_trss + pi_drss|ps -o rssize| |tamanho|Tamanho do processo (código + dados)|pi_dvm|"ps gvw" coluna SIZE| |dsize|Tamanho dos dados|pi_dsize|<| |tsize|Tamanho do texto (código)|pi_tsize|coluna "ps gvw" TSIZ| |sdsize|Tamanho dos dados da 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

Consulte os valores suportados para o parâmetro 'memtype' no Linux na tabela.

|Valor suportado|Descrição|Fonte no arquivo /proc/<pid>/status| |---------------|-----------|---------- ------------------| |vsize 1|Tamanho da memória virtual|VmSize| |pmem|Porcentagem de memória real|(VmRSS/total_memory) * 100| |rss|Tamanho do conjunto residente|VmRSS| |dados|Tamanho do segmento de dados|VmData| |exe|Tamanho do segmento de código|VmExe| |hwm|Tamanho do conjunto residente de pico|VmHWM| |lck|Tamanho da memória bloqueada|VmLck| |lib|Tamanho das bibliotecas compartilhadas|VmLib| |pico|Tamanho da memória virtual de pico|VmPeak| |pin|Tamanho das páginas fixadas|VmPin| |pte|Tamanho das entradas da tabela de páginas|VmPTE| |size|Tamanho do código do processo + dados + segmentos de pilha|VmExe + VmData + VmStk| |stk|Tamanho do segmento de pilha|VmStk| |swap|Tamanho do espaço de troca usado|VmSwap|

Notas para Linux:

  1. Nem todos os valores 'memtype' são suportados por kernels Linux mais antigos. Para Por exemplo, kernels Linux 2.4 não suportam hwm, pin, peak, valores pte e swap.
  2. Percebemos que o automonitoramento do agente Zabbix ativo processo de verificação com proc.mem[...,...,...,...,data] mostra um valor que é 4 kB maior do que o relatado pela linha VmData no agente arquivo /proc/<pid>/status. No momento da auto-medição, o segmento de dados do agente aumenta em 4 kB e então retorna ao 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
Notas de rodapé

1 Valor padrão.