Notas sobre el parámetro memtype en items proc.mem

Descripción general

El parámetro memtype es compatible con las plataformas Linux, AIX, FreeBSD y Solaris.

En todas estas plataformas se admiten tres valores comunes de memtype: pmem, rss y vsize. Además, algunas plataformas admiten valores de memtype específicos de la plataforma.

AIX

Consulte en la tabla los valores compatibles con el parámetro memtype en AIX.

Valor compatible Descripción Origen en la estructura procentry64 Intenta ser compatible con
vsize 1 Tamaño de la memoria virtual pi_size
pmem Porcentaje de memoria real pi_prm ps -o pmem
rss Tamaño del conjunto residente pi_trss + pi_drss ps -o rssize
size Tamaño del proceso (código + datos) pi_dvm Columna SIZE de ps gvw
dsize Tamaño de los datos pi_dsize
tsize Tamaño del texto (código) pi_tsize Columna TSIZ de ps gvw
sdsize Tamaño de los datos de la biblioteca compartida pi_sdsize
drss Tamaño del conjunto de datos residente pi_drss
trss Tamaño del conjunto de texto residente pi_trss

Notas para AIX:

  1. Al elegir los parámetros para la clave del item proc.mem[] en AIX, intente especificar criterios de selección de procesos precisos. De lo contrario, existe el riesgo de que se contabilicen procesos no deseados en el resultado de proc.mem[].

Ejemplo:

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

Este ejemplo muestra que especificar únicamente el parámetro de la línea de comandos (expresión regular con la que se debe comparar) hace que el agent de Zabbix se contabilice a sí mismo, lo que probablemente no es lo que desea.

  1. No utilice ps -ef para consultar los procesos, ya que solo muestra los procesos que no pertenecen al kernel. Utilice ps -Af para ver todos los procesos que podrá ver el agent de Zabbix.

  2. Veamos el ejemplo de topasrec para comprender cómo proc.mem[] del agent de Zabbix selecciona los procesos.

$ 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[] tiene los siguientes argumentos:

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

donde:

  • El primer criterio es un nombre de proceso (argumento <name>). En nuestro ejemplo, Zabbix agent lo verá como topasrec. Para que coincida, debe especificar topasrec o dejarlo vacío.
  • El segundo criterio es un nombre de usuario (argumento <user>). Para que coincida, debe especificar root o dejarlo vacío.
  • El tercer criterio utilizado en la selección de procesos es un argumento <cmdline>. Zabbix agent verá su valor como /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. Para que coincida, debe especificar una expresión regular que coincida con esta cadena o dejarla vacía.

Los argumentos <mode> y <memtype> se aplican después de utilizar los tres criterios mencionados anteriormente.

FreeBSD

Consulte en la tabla los valores compatibles con el parámetro memtype en FreeBSD.

Valor compatible Descripción Origen en la estructura kinfo_proc Intenta ser compatible con
vsize Tamaño de la memoria virtual kp_eproc.e_vm.vm_map.size o ki_size ps -o vsz
pmem Porcentaje de memoria real calculado a partir de rss ps -o pmem
rss Tamaño del conjunto residente kp_eproc.e_vm.vm_rssize o ki_rssize ps -o rss
size 1 Tamaño del proceso (código + datos + pila) tsize + dsize + ssize
tsize Tamaño del texto (código) kp_eproc.e_vm.vm_tsize o ki_tsize ps -o tsiz
dsize Tamaño de los datos kp_eproc.e_vm.vm_dsize o ki_dsize ps -o dsiz
ssize Tamaño de la pila kp_eproc.e_vm.vm_ssize o ki_ssize ps -o ssiz

Linux

Consulta en la tabla los valores compatibles con el parámetro memtype en Linux.

Valor compatible Descripción Origen en el archivo /proc/<pid>/status
vsize 1 Tamaño de la memoria virtual VmSize
pmem Porcentaje de memoria real (VmRSS/total_memory) * 100
rss Tamaño del conjunto residente VmRSS
data Tamaño del segmento de datos VmData
exe Tamaño del segmento de código VmExe
hwm Tamaño máximo del conjunto residente VmHWM
lck Tamaño de la memoria bloqueada VmLck
lib Tamaño de las bibliotecas compartidas VmLib
peak Tamaño máximo de la memoria virtual VmPeak
pin Tamaño de las páginas fijadas VmPin
pte Tamaño de las entradas de la tabla de páginas VmPTE
size Tamaño de los segmentos de código + datos + pila del proceso VmExe + VmData + VmStk
stk Tamaño del segmento de pila VmStk
swap Tamaño del espacio de intercambio utilizado VmSwap

Notas para Linux:

  1. No todos los valores de memtype son compatibles con los kernels de Linux antiguos. Por ejemplo, los kernels de Linux 2.4 no son compatibles con los valores hwm, pin, peak, pte y swap.
  2. Hemos observado que la supervisión propia del proceso de comprobación activa del agent de Zabbix con proc.mem[...,...,...,...,data] muestra un valor 4 kB mayor que el indicado en la línea VmData del archivo /proc/<pid>/status del agent. En el momento de la medición propia, el segmento de datos del agent aumenta en 4 kB y luego vuelve a su tamaño anterior.

Solaris

Consulte en la tabla los valores compatibles con el parámetro memtype en Solaris.

Valor compatible Descripción Origen en la estructura psinfo Intenta ser compatible con
vsize 1 Tamaño de la imagen del proceso pr_size ps -o vsz
pmem Porcentaje de memoria real pr_pctmem ps -o pmem
rss Tamaño del conjunto residente
Puede estar subestimado (consulte la descripción de rss en man ps).
pr_rssize ps -o rss
Notas al pie

1 Valor por defecto.