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
Nella tabella sono indicati i valori supportati per il parametro memtype su AIX.
| Valore supportato | Descrizione | Origine nella struttura procentry64 | Tenta di essere compatibile con |
|---|---|---|---|
vsize 1 |
Dimensione della memoria virtuale | pi_size |
|
pmem |
Percentuale di memoria reale | pi_prm |
ps -o pmem |
rss |
Dimensione del set residente | pi_trss + pi_drss |
ps -o rssize |
size |
Dimensione del processo (codice + dati) | pi_dvm |
Colonna SIZE di ps gvw |
dsize |
Dimensione dei dati | pi_dsize |
|
tsize |
Dimensione del testo (codice) | pi_tsize |
Colonna TSIZ di ps gvw |
sdsize |
Dimensione dei dati dalla libreria condivisa | pi_sdsize |
|
drss |
Dimensione del set residente dei dati | pi_drss |
|
trss |
Dimensione del set residente del testo | pi_trss |
|
Note per AIX:
- Quando si scelgono i parametri per la chiave dell'item
proc.mem[]su AIX, cercare di specificare criteri di selezione dei processi restrittivi. In caso contrario, esiste il rischio che processi indesiderati vengano conteggiati nel risultato diproc.mem[].
Esempio:
$ zabbix_agentd -t proc.mem[,,,NonExistingProcess,rss]
proc.mem[,,,NonExistingProcess,rss] [u|2879488]
Questo esempio mostra che specificare solo il parametro della riga di comando (espressione regolare da confrontare) comporta il conteggio automatico dell'agent Zabbix, probabilmente non desiderato.
-
Non utilizzare
ps -efper visualizzare i processi: mostra solo i processi non kernel. Utilizzareps -Afper visualizzare tutti i processi che saranno rilevati dall'agent Zabbix. -
Esaminiamo l'esempio di
topasrecper vedere come l'agent Zabbix seleziona i processi conproc.mem[].
$ 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[] presenta i seguenti argomenti:
proc.mem[<name>,<user>,<mode>,<cmdline>,<memtype>]
dove:
- Il primo criterio è il nome di un processo (argomento
<name>). Nel nostro esempio, Zabbix agent lo vedrà cometopasrec. Per trovare una corrispondenza, è necessario specificaretopasrecoppure lasciarlo vuoto. - Il secondo criterio è il nome di un utente (argomento
<user>). Per trovare una corrispondenza, è necessario specificarerootoppure lasciarlo vuoto. - Il terzo 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 trovare una corrispondenza, è necessario specificare un'espressione regolare che corrisponda a questa stringa oppure lasciarla vuota.
Gli argomenti <mode> e <memtype> vengono applicati dopo aver utilizzato i tre criteri indicati sopra.
FreeBSD
Vedere nella tabella i valori supportati per il parametro memtype su FreeBSD.
| Valore supportato | Descrizione | Origine nella struttura kinfo_proc | Tenta di essere compatibile con |
|---|---|---|---|
vsize |
Dimensione della memoria virtuale | kp_eproc.e_vm.vm_map.size o ki_size |
ps -o vsz |
pmem |
Percentuale di memoria reale | calcolata da rss |
ps -o pmem |
rss |
Dimensione del set residente | kp_eproc.e_vm.vm_rssize o 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 o ki_tsize |
ps -o tsiz |
dsize |
Dimensione dei dati | kp_eproc.e_vm.vm_dsize o ki_dsize |
ps -o dsiz |
ssize |
Dimensione dello stack | kp_eproc.e_vm.vm_ssize o ki_ssize |
ps -o ssiz |
Linux
Vedere nella tabella i valori supportati per il parametro memtype su Linux.
| Valore supportato | Descrizione | Origine nel file /proc/<pid>/status |
|---|---|---|
vsize 1 |
Dimensione della memoria virtuale | VmSize |
pmem |
Percentuale di memoria reale | (VmRSS/total_memory) * 100 |
rss |
Dimensione del set residente | VmRSS |
data |
Dimensione del segmento dati | VmData |
exe |
Dimensione del segmento di codice | VmExe |
hwm |
Dimensione massima del set residente | VmHWM |
lck |
Dimensione della memoria bloccata | VmLck |
lib |
Dimensione delle librerie condivise | VmLib |
peak |
Dimensione massima della memoria virtuale | VmPeak |
pin |
Dimensione delle pagine fissate | VmPin |
pte |
Dimensione delle voci della tabella delle pagine | VmPTE |
size |
Dimensione dei segmenti di codice + dati + stack del processo | 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
memtypesono supportati dai kernel Linux meno recenti. Ad esempio, i kernel Linux 2.4 non supportano i valorihwm,pin,peak,pteeswap. - Abbiamo osservato che il monitoraggio autonomo del processo di controllo attivo dell'agent Zabbix con
proc.mem[...,...,...,...,data]mostra un valore di 4 kB superiore a quello riportato dalla rigaVmDatanel file/proc/<pid>/statusdell'agent. Al momento della misurazione autonoma, il segmento dati dell'agent aumenta di 4 kB e poi torna alla dimensione precedente.
Solaris
Nella tabella sono indicati i valori supportati per il parametro memtype su Solaris.
| Valore supportato | Descrizione | Origine nella struttura psinfo | Tenta di essere compatibile con |
|---|---|---|---|
vsize 1 |
Dimensione dell'immagine del processo | pr_size |
ps -o vsz |
pmem |
Percentuale di 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.