This is a translation of the original English documentation page. Help us make it better.

9 Notes sur le paramètre memtype dans les éléments proc.mem

Aperçu

Le paramètre memtype est pris en charge sur les plateformes Linux, AIX, FreeBSD et Solaris.

Trois valeurs communes de 'memtype' sont prises en charge sur toutes ces plates-formes : pmem, rss et vsize. De plus, les valeurs 'memtype' spécifiques à la plate-forme sont prises en charge sur certaines plates-formes.

AIX

Vous trouverez les valeurs prises en charge pour le paramètre 'memtype' sous AIX dans le tableau suivant.

Valeur prise en charge Description Source dans la structure procentry64 Essaye d'être compatible avec
vsize 1 Taille de la mémoire virtuelle pi_size
pmem Pourcentage de mémoire réelle pi_prm ps -o pmem
rss Taille de l'ensemble résident pi_trss + pi_drss ps -o rssize
size Taille du processus (code + données) pi_dvm "ps gvw" SIZE column
dsize Taille des données pi_dsize
tsize Taille du texte (code) pi_tsize "ps gvw" Colonne TSIZ
sdsize Taille des données de la bibliothèque partagée pi_sdsize
drss Taille de l'ensemble résident des données pi_drss
trss Taille de l'ensemble résident du texte pi_trss

Notes for AIX:

  1. 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.

  1. 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.

  2. 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

Vous trouverez les valeurs prises en charge pour le paramètre 'memtype' sous FreeBSD dans le tableau suivant.

Valeur prise en charge Description Source dans la structure kinfo_proc Essaye d'être compatible avec
vsize Taille de la mémoire virtuelle kp_eproc.e_vm.vm_map.size ou ki_size ps -o vsz
pmem Pourcentage de mémoire réelle calculé à partir de rss ps -o pmem
rss Taille de l'ensemble résident kp_eproc.e_vm.vm_rssize ou ki_rssize ps -o rss
size 1 Taille du processus (code + données + pile) tsize + dsize + ssize
tsize Taille du texte (code) kp_eproc.e_vm.vm_tsize ou ki_tsize ps -o tsiz
dsize Taille des données kp_eproc.e_vm.vm_dsize ou ki_dsize ps -o dsiz
ssize Taille de la pile kp_eproc.e_vm.vm_ssize ou ki_ssize ps -o ssiz

####Linux

Vous trouverez les valeurs prises en charge pour le paramètre 'memtype' sous Linux dans le tableau suivant.

Valeur prise en charge Description Source dans le fichier /proc/<pid>/status
vsize 1 Taille de la mémoire virtuelle VmSize
pmem Pourcentage de mémoire réelle (VmRSS/total_memory) * 100
rss Taille de l'ensemble résident VmRSS
data Taille du segment de données VmData
exe Taille du segment de code VmExe
hwm Taille maximale de l'ensemble résident VmHWM
lck Taille de la mémoire verrouillée VmLck
lib Taille des bibliothèques partagées VmLib
peak Taille maximale de la mémoire virtuelle VmPeak
pin Taille des pages épinglées VmPin
pte Taille des entrées de la table des pages VmPTE
taille Taille du code de processus + données + segments de pile VmExe + VmData + VmStk
stk Taille du segment de pile VmStk
swap Taille de l'espace de swap utilisé VmSwap

Remarques pour Linux :

  1. Toutes les valeurs 'memtype' ne sont pas prises en charge par les anciens noyaux Linux. Par exemple, les noyaux Linux 2.4 ne prennent pas en charge les valeurs hwm, pin, peak, pte et swap.
  2. Nous avons remarqué que l'autosurveillance de l'agent Zabbix actif vérifiant le processus avec proc.mem[...,...,...,...,data] affiche une valeur de 4 ko de plus de ce qui est indiqué par la ligne "VmData" dans le fichier de l'agent /proc/<pid>/status. Au moment de l'auto-mesure, le segment de données de l'agent augmente de 4 ko, puis revient à la taille précédente.

Solaris

Voir les valeurs prises en charge pour le paramètre 'memtype' sur Solaris dans le tableau.

Valeur supportée Description Source dans la structure psinfo Essaie d'être compatible avec
vsize 1 Taille de l'image du processus pr_size ps -o vsz
pmem Pourcentage de mémoire réelle pr_pctmem ps -o pmem
rss Taille de l'ensemble résident
Il peut être sous-estimé - voir la description rss dans "man ps".
pr_rssize ps -o rss
Notes de bas de page

1 Valeur par défaut.