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:
- 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.
-
Verwenden Sie nicht
ps -ef, um Prozesse zu durchsuchen – es zeigt nur Nicht-Kernel-Prozesse an. Verwenden Sieps -Af, um alle Prozesse anzuzeigen, die vom Zabbix Agent gesehen werden. -
Gehen wir das Beispiel von
topasrecdurch, um zu sehen, wie Zabbix Agentproc.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:
- Nicht alle „memtype“-Werte werden von älteren Linux-Kernels unterstützt. Zum Beispiel unterstützen Linux-2.4-Kernels die Werte
hwm,pin,peak,pteundswapnicht. - 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 ZeileVmDatain 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.