Piezīmes par memtype parametru proc.mem vienumos

Pārskats

Parametrs memtype tiek atbalstīts Linux, AIX, FreeBSD un Solaris platformās.

Visās šajās platformās tiek atbalstītas trīs izplatītas memtype vērtības: pmem, rss un vsize. Turklāt dažās platformās tiek atbalstītas arī platformai specifiskas memtype vērtības.

AIX

Tabulā skatiet AIX parametram memtype atbalstītās vērtības.

Atbalstītā vērtība Apraksts Avots procentry64 struktūrā Mēģina nodrošināt saderību ar
vsize 1 Virtuālās atmiņas lielums pi_size
pmem Reālās atmiņas procentuālā daļa pi_prm ps -o pmem
rss Rezidentās kopas lielums pi_trss + pi_drss ps -o rssize
size Procesa lielums (kods + dati) pi_dvm ps gvw kolonna SIZE
dsize Datu lielums pi_dsize
tsize Teksta (koda) lielums pi_tsize ps gvw kolonna TSIZ
sdsize Koplietojamās bibliotēkas datu lielums pi_sdsize
drss Rezidentās datu kopas lielums pi_drss
trss Rezidentās teksta kopas lielums pi_trss

Piezīmes par AIX:

  1. Izvēloties parametrus proc.mem[] vienuma atslēgai AIX sistēmā, mēģiniet norādīt pēc iespējas precīzākus procesu atlases kritērijus. Pretējā gadījumā pastāv risks, ka proc.mem[] rezultātā tiks ieskaitīti nevēlami procesi.

Piemērs:

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

Šis piemērs parāda, ka, norādot tikai komandrindas parametru (regulāro izteiksmi, pēc kuras veikt atbilstības meklēšanu), Zabbix aģents uzskaita pats sevi, kas, visticamāk, nav tas, ko vēlaties.

  1. Neizmantojiet ps -ef, lai pārlūkotu procesus — tas parāda tikai procesus, kas nav kodola procesi. Izmantojiet ps -Af, lai skatītu visus procesus, kurus redzēs Zabbix aģents.

  2. Apskatīsim topasrec piemēru, lai noskaidrotu, kā Zabbix aģents proc.mem[] atlasa procesus.

$ 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[] ir šādi argumenti:

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

kur:

  • Pirmais kritērijs ir procesa nosaukums (arguments <name>). Mūsu piemērā Zabbix aģents to redzēs kā topasrec. Lai panāktu atbilstību, jānorāda topasrec vai arī lauks jāatstāj tukšs.
  • Otrais kritērijs ir lietotāja vārds (arguments <user>). Lai panāktu atbilstību, jānorāda root vai arī lauks jāatstāj tukšs.
  • Trešais kritērijs, ko izmanto procesu atlasē, ir arguments <cmdline>. Zabbix aģents tā vērtību redzēs kā /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. Lai panāktu atbilstību, jānorāda regulāra izteiksme, kas atbilst šai virknei, vai arī lauks jāatstāj tukšs.

Argumenti <mode> un <memtype> tiek lietoti pēc iepriekš minēto trīs kritēriju izmantošanas.

FreeBSD

Tabulā skatiet FreeBSD atbalstītās parametra memtype vērtības.

Atbalstītā vērtība Apraksts Avots kinfo_proc struktūrā Mēģina nodrošināt saderību ar
vsize Virtuālās atmiņas lielums kp_eproc.e_vm.vm_map.size vai ki_size ps -o vsz
pmem Reālās atmiņas procentuālā daļa aprēķināts no rss ps -o pmem
rss Rezidentās kopas lielums kp_eproc.e_vm.vm_rssize vai ki_rssize ps -o rss
size 1 Procesa lielums (kods + dati + steks) tsize + dsize + ssize
tsize Teksta (koda) lielums kp_eproc.e_vm.vm_tsize vai ki_tsize ps -o tsiz
dsize Datu lielums kp_eproc.e_vm.vm_dsize vai ki_dsize ps -o dsiz
ssize Steka lielums kp_eproc.e_vm.vm_ssize vai ki_ssize ps -o ssiz

Linux

Tabulā skatiet Linux atbalstītās memtype parametra vērtības.

Atbalstītā vērtība Apraksts Avots failā /proc/<pid>/status
vsize 1 Virtuālās atmiņas lielums VmSize
pmem Reālās atmiņas procentuālā daļa (VmRSS/total_memory) * 100
rss Rezidentās kopas lielums VmRSS
data Datu segmenta lielums VmData
exe Koda segmenta lielums VmExe
hwm Maksimālais rezidentās kopas lielums VmHWM
lck Bloķētās atmiņas lielums VmLck
lib Koplietojamo bibliotēku lielums VmLib
peak Maksimālais virtuālās atmiņas lielums VmPeak
pin Fiksēto lapu lielums VmPin
pte Lapu tabulas ierakstu lielums VmPTE
size Procesa koda + datu + steka segmentu lielums VmExe + VmData + VmStk
stk Steka segmenta lielums VmStk
swap Izmantotās mijmaiņas vietas lielums VmSwap

Piezīmes par Linux:

  1. Vecāki Linux kodoli neatbalsta visas memtype vērtības. Piemēram, Linux 2.4 kodoli neatbalsta hwm, pin, peak, pte un swap vērtības.
  2. Esam novērojuši, ka Zabbix aģenta aktīvās pārbaudes procesa pašuzraudzība ar proc.mem[...,...,...,...,data] uzrāda vērtību, kas ir par 4 kB lielāka nekā VmData rindā norādītā vērtība aģenta failā /proc/<pid>/status. Pašmērījuma laikā aģenta datu segments palielinās par 4 kB un pēc tam atgriežas iepriekšējā lielumā.

Solaris

Tabulā skatiet Solaris atbalstītās parametra memtype vērtības.

Atbalstītā vērtība Apraksts Avots psinfo struktūrā Mēģina nodrošināt saderību ar
vsize 1 Procesa attēla lielums pr_size ps -o vsz
pmem Reālās atmiņas procentuālā daļa pr_pctmem ps -o pmem
rss Rezidentās kopas lielums
Tas var būt novērtēts par zemu (skatiet rss aprakstu sadaļā man ps).
pr_rssize ps -o rss
Piezīmes

1 Noklusējuma vērtība.