Você está visualizando a documentação da versão de desenvolvimento, que pode estar incompleta.
Esta página foi traduzida automaticamente. Se você notar um erro, selecione-o e pressione Ctrl+Enter para reportá-lo aos editores.

7 Notas sobre o parâmetro memtype em itens proc.mem

Visão geral

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

Três valores comuns de 'memtype' são suportados em todas essas plataformas: pmem, rss e vsize. Além disso, valores de 'memtype' específicos da plataforma são suportados em algumas plataformas.

AIX

Veja 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
size Tamanho do processo (código + dados) pi_dvm Coluna SIZE do "ps gvw"
dsize Tamanho dos dados pi_dsize
tsize Tamanho do texto (código) pi_tsize Coluna TSIZ do "ps gvw"
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

Notas para AIX:

  1. Ao escolher parâmetros para a chave do item proc.mem[] no AIX, tente especificar critérios de seleção de processo mais restritos. Caso contrário, há o risco de obter processos indesejados contados no resultado de proc.mem[].

Exemplo:

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

Este exemplo mostra como especificar apenas o parâmetro da linha de comando (expressão regular para corresponder) resulta na auto-contabilização do agent do Zabbix - provavelmente não é o que você deseja.

  1. Não use "ps -ef" para navegar pelos processos - ele mostra apenas processos não-kernel. Use "ps -Af" para ver todos os processos que serão vistos pelo agent do Zabbix.

  2. Vamos passar pelo exemplo do 'topasrec' para mostrar como o agent do Zabbix proc.mem[] seleciona processos.

$ 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[] possui argumentos:

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

O primeiro critério é um nome de processo (argumento <name>). Em nosso exemplo, o agent do Zabbix o verá como 'topasrec'. Para corresponder, você precisa especificar 'topasrec' ou deixá-lo em branco. O segundo critério é um nome de usuário (argumento <user>). Para corresponder, você precisa especificar 'root' ou deixá-lo em branco. O terceiro critério usado na seleção do processo é um argumento <cmdline>. O agent do Zabbix verá seu valor como '/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'. Para corresponder, você precisa especificar uma expressão regular que corresponda a essa string ou deixá-la em branco.

Os argumentos <mode> e <memtype> são aplicados após o uso dos três critérios mencionados acima.

FreeBSD

Veja os valores suportados para o parâmetro 'memtype' no FreeBSD na tabela.

Valor suportado Descrição Fonte na estrutura kinfo_proc Tenta ser compatível com
vsize Tamanho da memória virtual kp_eproc.e_vm.vm_map.size ou ki_size ps -o vsz
pmem Porcentagem de memória real calculado a partir do rss ps -o pmem
rss Tamanho do conjunto residente kp_eproc.e_vm.vm_rssize ou ki_rssize ps -o rss
size 1 Tamanho do processo (código + dados + pilha) tsize + dsize + ssize
tsize Tamanho do texto (código) kp_eproc.e_vm.vm_tsize ou ki_tsize ps -o tsiz
dsize Tamanho dos dados kp_eproc.e_vm.vm_dsize ou ki_dsize ps -o dsiz
ssize Tamanho da pilha kp_eproc.e_vm.vm_ssize ou ki_ssize ps -o ssiz

Linux

Veja 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
data Tamanho do segmento de dados VmData
exe Tamanho do segmento de código VmExe
hwm Pico do conjunto residente VmHWM
lck Tamanho da memória travada VmLck
lib Tamanho das bibliotecas compartilhadas VmLib
peak Pico de memória virtual 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 swap utilizado VmSwap

Notas para Linux:

  1. Nem todos os valores de 'memtype' são suportados por kernels Linux mais antigos. Por exemplo, kernels Linux 2.4 não suportam os valores hwm, pin, peak, pte e swap.
  2. Observamos que o auto-monitoramento do processo de verificação ativa do agent Zabbix com proc.mem[...,...,...,...,data] mostra um valor que é 4 kB maior do que o relatado pela linha VmData no arquivo /proc/<pid>/status do agent. No momento da auto-medição, o segmento de dados do agent aumenta em 4 kB e depois retorna ao tamanho anterior.

Solaris

Veja os valores suportados para o parâmetro 'memtype' no Solaris na tabela.

Valor suportado Descrição Fonte na estrutura psinfo Tenta ser compatível com
vsize 1 Tamanho da imagem do processo pr_size ps -o vsz
pmem Porcentagem de memória real pr_pctmem ps -o pmem
rss Tamanho do conjunto residente
Pode ser subestimado - veja a descrição de rss em "man ps".
pr_rssize ps -o rss
Notas de rodapé

1 Valor padrão.