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:
- 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.
-
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.
-
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:
- 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,pteeswap. - 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 rigaVmDatanel 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.