7 Remarques 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 | |
Remarques pour AIX :
- Lors du choix des paramètres pour la clé d’élément proc.mem[] sur AIX, essayez de spécifier des critères de sélection de processus précis. Sinon, il existe un risque que des processus non souhaités soient comptabilisés dans le résultat de proc.mem[].
Exemple :
$ zabbix_agentd -t proc.mem[,,,NonExistingProcess,rss]
proc.mem[,,,NonExistingProcess,rss] [u|2879488]
Cet exemple montre que le fait de spécifier uniquement le paramètre de ligne de commande (expression régulière à faire correspondre) entraîne une auto-comptabilisation de l’agent Zabbix, ce qui n’est probablement pas ce que vous souhaitez.
-
N'utilisez pas
ps -efpour parcourir les processus : il n'affiche que les processus non noyau. Utilisezps -Afpour voir tous les processus qui seront vus par l'agent Zabbix. -
Examinons l'exemple de
topasrecpour voir comment l'agent Zabbix proc.mem[] sélectionne les processus.
$ 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[] comporte les arguments suivants :
proc.mem[<name>,<user>,<mode>,<cmdline>,<memtype>]
Le 1er critère est un nom de processus (argument <name>). Dans notre exemple, l’agent Zabbix le verra comme « topasrec ». Pour qu’il y ait correspondance, vous devez soit spécifier « topasrec », soit le laisser vide. Le 2e critère est un nom d’utilisateur (argument <user>). Pour qu’il y ait correspondance, vous devez soit spécifier « root », soit le laisser vide. Le 3e critère utilisé dans la sélection du processus est un argument <cmdline>. L’agent Zabbix verra sa valeur comme « /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 ». Pour qu’il y ait correspondance, vous devez soit spécifier une expression régulière qui correspond à cette chaîne, soit le laisser vide.
Les arguments <mode> et <memtype> sont appliqués après l’utilisation des trois critères mentionnés ci-dessus.
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 :
- 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,pteetswap. - 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.