Hinweise zum memtype-Parameter in proc.mem-Datenpunkten
Übersicht
Der Parameter memtype wird auf Linux-, AIX-, FreeBSD- und Solaris-Plattformen unterstützt.
Auf allen diesen Plattformen werden drei gängige Werte von memtype unterstützt: pmem, rss und vsize.
Zusätzlich werden auf einigen Plattformen plattformspezifische memtype-Werte unterstützt.
AIX
In der Tabelle finden Sie die für den Parameter memtype unter AIX 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 residenten Speichers | 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 gemeinsam genutzten Bibliothek | pi_sdsize |
|
drss |
Residente Datensatzgröße | pi_drss |
|
trss |
Residente Textgröße | pi_trss |
|
Hinweise für AIX:
- Versuchen Sie bei der Auswahl der Parameter für den
proc.mem[]-Datenpunktschlüssel unter AIX, möglichst genaue Kriterien für die Prozessauswahl anzugeben. Andernfalls besteht das Risiko, dass unerwünschte Prozesse im Ergebnis vonproc.mem[]mitgezählt werden.
Beispiel:
$ zabbix_agentd -t proc.mem[,,,NonExistingProcess,rss]
proc.mem[,,,NonExistingProcess,rss] [u|2879488]
Dieses Beispiel zeigt, dass die Angabe ausschließlich des Parameters für die Befehlszeile (abzugleichender regulärer Ausdruck) dazu führt, dass der Zabbix Agent sich selbst mitzählt. Das ist wahrscheinlich nicht das gewünschte Verhalten.
-
Verwenden Sie
ps -efnicht zum Anzeigen von Prozessen – dieser Befehl zeigt nur Nicht-Kernel-Prozesse an. Verwenden Sieps -Af, um alle Prozesse anzuzeigen, die vom Zabbix Agent erkannt werden. -
Sehen wir uns am Beispiel von
topasrecan, wie der 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[] verfügt über folgende Argumente:
proc.mem[<name>,<user>,<mode>,<cmdline>,<memtype>]
wobei:
- Das erste Kriterium ist ein Prozessname (Argument
<name>). In unserem Beispiel wird der Zabbix Agent ihn alstopasrecerkennen. Für eine Übereinstimmung müssen Sie entwedertopasrecangeben oder das Feld leer lassen. - Das zweite Kriterium ist ein Benutzername (Argument
<user>). Für eine Übereinstimmung müssen Sie entwederrootangeben oder das Feld leer lassen. - Das dritte Kriterium, das bei der Prozessauswahl verwendet wird, ist ein Argument <cmdline>.
Der Zabbix Agent wird dessen 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,2023erkennen. Für eine Übereinstimmung müssen Sie entweder einen regulären Ausdruck angeben, der auf diese Zeichenfolge passt, oder das Feld leer lassen.
Die Argumente <mode> und <memtype> werden angewendet, nachdem die drei oben genannten Kriterien verwendet wurden.
FreeBSD
In der Tabelle finden Sie die für den Parameter memtype unter FreeBSD 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 realen Speichers | aus rss berechnet |
ps -o pmem |
rss |
Größe des residenten Speichers | 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 Textes (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 |
Stackgröße | kp_eproc.e_vm.vm_ssize oder ki_ssize |
ps -o ssiz |
Linux
Die für den Parameter memtype unter Linux unterstützten Werte finden Sie in der Tabelle.
| 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 des residenten Speichers | VmRSS |
data |
Größe des Datensegments | VmData |
exe |
Größe des Codesegments | VmExe |
hwm |
Maximale Größe des residenten Speichers | VmHWM |
lck |
Größe des gesperrten Speichers | VmLck |
lib |
Größe der gemeinsam genutzten Bibliotheken | VmLib |
peak |
Maximale Größe des virtuellen Speichers | VmPeak |
pin |
Größe der angehefteten Seiten | VmPin |
pte |
Größe der Seitentabelleneinträge | VmPTE |
size |
Größe der Code-, Daten- und Stacksegmente des Prozesses | VmExe + VmData + VmStk |
stk |
Größe des Stacksegments | VmStk |
swap |
Größe des verwendeten Swap-Speichers | VmSwap |
Hinweise für Linux:
- Nicht alle
memtype-Werte werden von älteren Linux-Kerneln unterstützt. Beispielsweise unterstützen Linux-2.4-Kernel die Wertehwm,pin,peak,pteundswapnicht. - Wir haben festgestellt, dass die Selbstüberwachung des aktiven Prüfprozesses des Zabbix Agent mit
proc.mem[...,...,...,...,data]einen Wert anzeigt, der 4 kB größer ist als der in der ZeileVmDatader Datei/proc/<pid>/statusdes Agent gemeldete Wert. Zum Zeitpunkt der Selbstmessung vergrößert sich das Datensegment des Agent um 4 kB und kehrt anschließend zu seiner vorherigen Größe zurück.
Solaris
In der Tabelle finden Sie die für den Parameter memtype unter Solaris 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 des residenten Satzes Sie kann unterschätzt werden (siehe die Beschreibung von rss in man ps). |
pr_rssize |
ps -o rss |
Fußnoten
1 Standardwert.