7 Note sul parametro memtype negli item proc.mem

Panoramica

Il parametro memtype è supportato sulle piattaforme Linux, AIX, FreeBSD e Solaris.

Tre valori comuni di 'memtype' sono supportati su tutte queste piattaforme: pmem, rss e vsize. Inoltre, su alcune piattaforme sono supportati valori di 'memtype' specifici della piattaforma.

AIX

Vedere nella tabella i valori supportati per il parametro 'memtype' su AIX.

Valore supportato Descrizione Origine nella struttura procentry64 Cerca di essere compatibile con
vsize 1 Dimensione della memoria virtuale pi_size
pmem Percentuale della memoria reale pi_prm ps -o pmem
rss Dimensione del resident set pi_trss + pi_drss ps -o rssize
size Dimensione del processo (codice + dati) pi_dvm "ps gvw" colonna SIZE
dsize Dimensione dei dati pi_dsize
tsize Dimensione del testo (codice) pi_tsize "ps gvw" colonna TSIZ
sdsize Dimensione dei dati dalla libreria condivisa pi_sdsize
drss Dimensione del resident set dei dati pi_drss
trss Dimensione del resident set del testo pi_trss

Note per AIX:

  1. Quando si scelgono i parametri per la chiave item proc.mem[] su AIX, cercare di specificare criteri di selezione del processo ristretti. In caso contrario, c'è il rischio che processi indesiderati vengano conteggiati nel risultato di proc.mem[].

Esempio:

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

Questo esempio mostra come specificare solo il parametro della riga di comando (espressione regolare da corrispondere) comporti l'auto-conteggio dello Zabbix agent, probabilmente non ciò che si desidera.

  1. Non utilizzare "ps -ef" per esaminare i processi: mostra solo i processi non kernel. Usa "ps -Af" per vedere tutti i processi che saranno visibili a Zabbix agent.

  2. Vediamo l'esempio di 'topasrec' per capire come Zabbix agent proc.mem[] seleziona i processi.

$ 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[] ha i seguenti argomenti:

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

Il 1° criterio è un nome di processo (argomento <name>). Nel nostro esempio, Zabbix agent lo vedrà come 'topasrec'. Per ottenere una corrispondenza, è necessario specificare 'topasrec' oppure lasciarlo vuoto. Il 2° criterio è un nome utente (argomento <user>). Per ottenere una corrispondenza, è necessario specificare 'root' oppure lasciarlo vuoto. Il 3° criterio utilizzato nella selezione del processo è un argomento <cmdline>. Zabbix agent ne vedrà il valore come '/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'. Per ottenere una corrispondenza, è necessario specificare un'espressione regolare che corrisponda a questa stringa oppure lasciarlo vuoto.

Gli argomenti <mode> e <memtype> vengono applicati dopo l'uso dei tre criteri sopra menzionati.

FreeBSD

Vedere nella tabella i valori supportati per il parametro 'memtype' su FreeBSD.

Valore supportato Descrizione Sorgente nella struttura kinfo_proc Cerca di essere compatibile con
vsize Dimensione della memoria virtuale kp_eproc.e_vm.vm_map.size or ki_size ps -o vsz
pmem Percentuale della memoria reale calcolata da rss ps -o pmem
rss Dimensione del resident set kp_eproc.e_vm.vm_rssize or ki_rssize ps -o rss
size 1 Dimensione del processo (codice + dati + stack) tsize + dsize + ssize
tsize Dimensione del testo (codice) kp_eproc.e_vm.vm_tsize or ki_tsize ps -o tsiz
dsize Dimensione dei dati kp_eproc.e_vm.vm_dsize or ki_dsize ps -o dsiz
ssize Dimensione dello stack kp_eproc.e_vm.vm_ssize or ki_ssize ps -o ssiz

Linux

Vedere nella tabella i valori supportati per il parametro 'memtype' su Linux.

Valore supportato Descrizione Sorgente nel file /proc/<pid>/status
vsize 1 Dimensione della memoria virtuale VmSize
pmem Percentuale della memoria reale (VmRSS/total_memory) * 100
rss Dimensione del resident set VmRSS
data Dimensione del segmento dati VmData
exe Dimensione del segmento di codice VmExe
hwm Picco della dimensione del resident set VmHWM
lck Dimensione della memoria bloccata VmLck
lib Dimensione delle librerie condivise VmLib
peak Picco della dimensione della memoria virtuale VmPeak
pin Dimensione delle pagine bloccate in memoria VmPin
pte Dimensione delle voci della tabella delle pagine VmPTE
size Dimensione del codice del processo + segmenti dati + stack VmExe + VmData + VmStk
stk Dimensione del segmento stack VmStk
swap Dimensione dello spazio di swap utilizzato VmSwap

Note per Linux:

  1. Non tutti i valori di 'memtype' sono supportati dai kernel Linux meno recenti. Ad esempio, i kernel Linux 2.4 non supportano i valori hwm, pin, peak, pte e swap.
  2. Abbiamo osservato che l'auto-monitoraggio del processo di active check dello Zabbix agent con proc.mem[...,...,...,...,data] mostra un valore superiore di 4 kB rispetto a quello riportato dalla riga VmData nel file /proc/<pid>/status dell'agent. Al momento dell'auto-misurazione il segmento dati dell'agent aumenta di 4 kB e poi ritorna alla dimensione precedente.

Solaris

Vedere nella tabella i valori supportati per il parametro 'memtype' su Solaris.

Valore supportato Descrizione Origine nella struttura psinfo Cerca di essere compatibile con
vsize 1 Dimensione dell'immagine del processo pr_size ps -o vsz
pmem Percentuale della memoria reale pr_pctmem ps -o pmem
rss Dimensione del resident set
Potrebbe essere sottostimata - vedere la descrizione di rss in "man ps".
pr_rssize ps -o rss
Note a piè di pagina

1 Valore predefinito.