7 Hinweise zum memtype-Parameter in proc.mem-Datenpunkten

Übersicht

Der Parameter memtype wird auf den Plattformen Linux, AIX, FreeBSD und Solaris unterstützt.

Drei gängige Werte von „memtype“ werden auf all diesen Plattformen unterstützt: pmem, rss und vsize. Zusätzlich werden auf einigen Plattformen plattformspezifische „memtype“-Werte unterstützt.

AIX

In der Tabelle finden Sie die unter AIX für den Parameter „memtype“ unterstützten Werte.

Unterstützter Wert Beschreibung Quelle in der Struktur procentry64 Versucht kompatibel zu sein mit
vsize 1 Größe des virtuellen Speichers pi_size
pmem Prozentsatz des realen Speichers pi_prm ps -o pmem
rss Größe des Resident Set pi_trss + pi_drss ps -o rssize
size Größe des Prozesses (Code + Daten) pi_dvm Spalte SIZE von „ps gvw“
dsize Datengröße pi_dsize
tsize Textgröße (Code) pi_tsize Spalte TSIZ von „ps gvw“
sdsize Datengröße aus der Shared Library pi_sdsize
drss Größe des Data Resident Set pi_drss
trss Größe des Text Resident Set pi_trss

Hinweise für AIX:

  1. Wenn Sie Parameter für den Datenpunkt-Schlüssel proc.mem[] unter AIX auswählen, versuchen Sie, möglichst enge Kriterien für die Prozessauswahl anzugeben. Andernfalls besteht das Risiko, dass unerwünschte Prozesse im Ergebnis von proc.mem[] mitgezählt werden.

Beispiel:

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

Dieses Beispiel zeigt, dass die Angabe nur des Parameters für die Befehlszeile (regulärer Ausdruck für die Übereinstimmung) dazu führt, dass der Zabbix Agent sich selbst mit einbezieht – wahrscheinlich nicht das, was Sie möchten.

  1. Verwenden Sie nicht ps -ef, um Prozesse zu durchsuchen – es zeigt nur Nicht-Kernel-Prozesse an. Verwenden Sie ps -Af, um alle Prozesse anzuzeigen, die vom Zabbix Agent gesehen werden.

  2. Gehen wir das Beispiel von topasrec durch, um zu sehen, wie Zabbix Agent proc.mem[] Prozesse auswählt.

$ 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[] hat folgende Argumente:

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

Das 1. Kriterium ist ein Prozessname (Argument <name>). In unserem Beispiel wird der Zabbix Agent ihn als „topasrec“ sehen. Für eine Übereinstimmung müssen Sie entweder „topasrec“ angeben oder das Feld leer lassen.
Das 2. Kriterium ist ein Benutzername (Argument <user>). Für eine Übereinstimmung müssen Sie entweder „root“ angeben oder das Feld leer lassen.
Das 3. Kriterium, das bei der Prozessauswahl verwendet wird, ist ein Argument <cmdline>. Der Zabbix Agent wird seinen Wert als „/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“ sehen. Für eine Übereinstimmung müssen Sie entweder einen regulären Ausdruck angeben, der mit dieser Zeichenkette übereinstimmt, oder das Feld leer lassen.

Die Argumente <mode> und <memtype> werden nach Anwendung der drei oben genannten Kriterien verwendet.

FreeBSD

In der Tabelle finden Sie die unter FreeBSD für den Parameter „memtype“ unterstützten Werte.

Unterstützter Wert Beschreibung Quelle in der Struktur kinfo_proc Versucht kompatibel zu sein mit
vsize Größe des virtuellen Speichers kp_eproc.e_vm.vm_map.size oder ki_size ps -o vsz
pmem Prozentsatz des physischen Speichers aus rss berechnet ps -o pmem
rss Größe des Resident Set kp_eproc.e_vm.vm_rssize oder ki_rssize ps -o rss
size 1 Größe des Prozesses (Code + Daten + Stack) tsize + dsize + ssize
tsize Größe des Textsegments (Code) kp_eproc.e_vm.vm_tsize oder ki_tsize ps -o tsiz
dsize Datengröße kp_eproc.e_vm.vm_dsize oder ki_dsize ps -o dsiz
ssize Größe des Stacks kp_eproc.e_vm.vm_ssize oder ki_ssize ps -o ssiz

Linux

In der Tabelle sind die unter Linux für den Parameter „memtype“ unterstützten Werte aufgeführt.

Unterstützter Wert Beschreibung Quelle in der Datei /proc/<pid>/status
vsize 1 Größe des virtuellen Speichers VmSize
pmem Prozentsatz des realen Speichers (VmRSS/total_memory) * 100
rss Größe der Resident Set Size VmRSS
data Größe des Datensegments VmData
exe Größe des Codesegments VmExe
hwm Spitzenwert der Resident Set Size VmHWM
lck Größe des gesperrten Speichers VmLck
lib Größe der gemeinsam genutzten Bibliotheken VmLib
peak Spitzenwert der Größe des virtuellen Speichers VmPeak
pin Größe der fixierten Seiten VmPin
pte Größe der Seitentabelleneinträge VmPTE
size Größe des Prozesscodes + Daten- + Stack-Segmente VmExe + VmData + VmStk
stk Größe des Stack-Segments VmStk
swap Größe des verwendeten Swap-Speichers VmSwap

Hinweise für Linux:

  1. Nicht alle „memtype“-Werte werden von älteren Linux-Kernels unterstützt. Zum Beispiel unterstützen Linux-2.4-Kernels die Werte hwm, pin, peak, pte und swap nicht.
  2. Wir haben festgestellt, dass die Selbstüberwachung des aktiven Prüfprozess des Zabbix Agent mit proc.mem[...,...,...,...,data] einen Wert anzeigt, der 4 kB größer ist als der in der Zeile VmData in der Datei /proc/<pid>/status des Agent gemeldete Wert. Zum Zeitpunkt der Selbstmessung erhöht sich das Datensegment des Agent um 4 kB und kehrt dann auf die vorherige Größe zurück.

Solaris

In der Tabelle finden Sie die unter Solaris für den Parameter „memtype“ unterstützten Werte.

Unterstützter Wert Beschreibung Quelle in der psinfo-Struktur Versucht kompatibel zu sein mit
vsize 1 Größe des Prozessabbilds pr_size ps -o vsz
pmem Prozentsatz des realen Speichers pr_pctmem ps -o pmem
rss Größe der Resident Set Size
Sie kann unterschätzt werden – siehe die Beschreibung von rss in „man ps“.
pr_rssize ps -o rss
Fußnoten

1 Standardwert.