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.
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:
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.
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.
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.
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 |
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:
hwm, pin, peak, pte e swap.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.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 |
1 Valor padrão.