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:
- 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.
-
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.
-
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:
- 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, valorespteeswap. - 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 linhaVmDatano 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.