8 Opmerkingen over memtype-parameter in proc.mem-items

Overzicht

De parameter memtype wordt ondersteund op Linux, AIX, FreeBSD en Solaris-platforms.

Op al deze worden drie algemene waarden van 'memtype' ondersteund platforms: pmem, rss en vsize. Bovendien, platform-specifiek 'memtype'-waarden worden op sommige platforms ondersteund.

AIX

Zie de ondersteunde waarden voor de parameter 'memtype' op AIX in de tabel.

Ondersteunde waarde Beschrijving Bron in procentry64-structuur Probeer compatibel te zijn met
vsize 1 Virtuele geheugengrootte pi_size
pmem Percentage van echt geheugen pi_prm ps -o pmem
rss Ingezetene set grootte pi_trss + pi_drss ps -o rssize
size Grootte van proces (code + data) pi_dvm "ps gvw" Kolom SIZE
dsize Gegevensgrootte pi_dsize
tsize Tekst (code) grootte pi_tsize "ps gvw" TSIZ-kolom
sdsize Gegevensgrootte van gedeelde bibliotheek pi_sdsize
drss Gegevens resident set grootte pi_drss
trss Text resident set size pi_trss

Notities voor AIX:

  1. Bij het kiezen van parameters voor de item-sleutel proc.mem[] op AIX, probeer specifieke criteria te specificeren voor de selectie van processen. Anders bestaat er een risico dat ongewenste processen worden meegeteld in het resultaat van proc.mem[].

Voorbeeld:

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

Dit voorbeeld laat zien hoe het specificeren van alleen de opdrachtregel (reguliere expressie om overeen te komen) parameter resulteert in zelfregistratie van de Zabbix-agent - waarschijnlijk niet wat u wilt.

  1. Gebruik "ps -ef" niet om processen te bekijken - dit toont alleen niet-kernelprocessen. Gebruik "ps -Af" om alle processen te zien die door de Zabbix-agent worden waargenomen.

  2. Laten we het voorbeeld van 'topasrec' doornemen, hoe de Zabbix-agent proc.mem[] processen selecteert.

$ ps -Af | grep topasrec
       root 10747984        1   0   16 mrt      -  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,16 mrt 2023

proc.mem[] heeft argumenten:

proc.mem[<naam>,<gebruiker>,<modus>,<opdrachtregel>,<geheugentype>]

Het eerste criterium is de naam van een proces (argument <naam>). In ons voorbeeld zal de Zabbix-agent dit zien als 'topasrec'. Om overeen te komen, moet je ofwel 'topasrec' specificeren of het leeg laten. Het tweede criterium is een gebruikersnaam (argument <gebruiker>). Om overeen te komen, moet je ofwel 'root' specificeren of het leeg laten. Het derde criterium dat wordt gebruikt bij processelectie, is een argument <opdrachtregel>. De Zabbix-agent ziet de waarde 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,16 mrt 2023'. Om overeen te komen, moet je ofwel een reguliere expressie specificeren die deze string overeen laat komen, of het leeg laten.

Argumenten <modus> en <geheugentype> worden toegepast na het gebruik van de bovengenoemde drie criteria.

FreeBSD

Zie de waarden die worden ondersteund voor de parameter 'memtype' op FreeBSD in de tabel.

Ondersteunde waarde Beschrijving Bron in kinfo_proc structuur Probeer compatibel te zijn met
vsize Virtuele geheugengrootte kp_eproc.e_vm.vm_map.size of ki_size ps -o vsz
pmem Percentage van echt geheugen berekend uit rss ps -o pmem
rss Ingezetene set grootte kp_eproc.e_vm.vm_rssize of ki_rssize ps -o rss
size 1 Grootte van proces (code + data + stapel) tsize + dsize + ssize
tsize Tekst (code) size kp_eproc.e_vm.vm_tsize of ki_tsize ps -o tsiz
dsize Gegevensgrootte kp_eproc.e_vm.vm_dsize of ki_dsize ps -o dsiz
ssize Stapelgrootte kp_eproc.e_vm.vm_ssize of ki_ssize ps -o ssiz

Linux

Zie de waarden die worden ondersteund voor de parameter 'memtype' op Linux in de tabel.

Ondersteunde waarde Beschrijving Bron in /proc/<pid>/statusbestand
vsize 1 Virtuele geheugengrootte VmSize
pmem Percentage van echt geheugen (VmRSS/total_memory) * 100
rss Ingezetene setgrootte VmRSS
data Grootte van gegevenssegment VmData
exe Grootte van codesegment VmExe
hwm Piek resident setgrootte VmHWM
lck Grootte van vergrendeld geheugen VmLck
lib Grootte van gedeelde bibliotheken VmLib
peak Piekgrootte virtueel geheugen VmPeak
pin Grootte van vastgezette pagina's VmPin
pte Grootte van paginatabelitems VmPTE
size Grootte van procescode + data + stacksegmenten VmExe + VmData + VmStk
stk Grootte van stapelsegment VmStk
swap Grootte van gebruikte swapruimte VmSwap

Opmerkingen voor Linux:

  1. Niet alle 'memtype'-waarden worden ondersteund door oudere Linux-kernels. Voor Linux 2.4-kernels ondersteunen bijvoorbeeld geen hwm, pin, peak, pte en swap waarden.
  2. We hebben gemerkt dat zelfcontrole van de Zabbix-agent actief is check proces met proc.mem[...,...,...,...,data] toont een waarde dat is 4 kB groter dan gerapporteerd door VmData regel in de agent's /proc/<pid>/statusbestand. Op het moment van zelfmeting is de het gegevenssegment van de agent neemt toe met 4 kB en keert dan terug naar de vorige maat.

Solaris

Zie de ondersteunde waarden voor de parameter 'memtype' op Solaris in de tabel.

Ondersteunde waarde Beschrijving Bron in psinfo-structuur Probeer compatibel te zijn met
vsize 1 Grootte van procesafbeelding pr_size ps -o vsz
pmem Percentage van echt geheugen pr_pctmem ps -o pmem
rss Ingezetene setgrootte
Het kan worden onderschat - zie de rss-beschrijving in "man ps".
pr_rssize ps -o rss
Voetnoten

1 Standaardwaarde.