7 Notas sobre el parámetro memtype en las métricas proc.mem

Descripción general

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

Todas estas plataformas soportan tres valores comunes de 'memtype': pmem, rss y vsize. Además, dependiendo de la plataforma secsoportan valores especificos de 'memtype' para algunas plataformas.

AIX

Consulte los valores admitidos para el parámetro 'memtype' en AIX en la tabla.

Valor admitido Descripción Fuente en la estructura procentry64 Intenta ser compatible con
vsize 1 Tamaño de 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 TAMAÑO "ps gvw"
dsize Tamaño de datos pi_dsize
tsize Tamaño del texto (código) pi_tsize Columna TSIZ "ps gvw"
sdsize Tamaño de datos de la biblioteca compartida pi_sdsize
drss Tamaño del conjunto residente de datos pi_drss
trss Tamaño del conjunto residente de texto pi_trss

Notas para AIX:

  1. Al elegir parámetros para la clave de métrica proc.mem[] en AIX, intente especificar criterios de selección de procesos limitados. De lo contrario, existe el riesgo de que se cuenten 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 cómo especificar solo el parámetro de línea de comando (expresión regular para que coincida) da como resultado que el propio agente Zabbix tambien sea contado; probablemente no sea lo que desea.

  1. No utilice "ps -ef" para explorar procesos; solo muestra procesos que no son del kernel. Utilice "ps -Af" para ver todos los procesos que serán vistos por el agente de Zabbix.

  2. Veamos un ejemplo de 'topasrec' sobre cómo proc.mem[] del agente Zabbix selecciona 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 argumentos:

proc.mem[<nombre>,<usuario>,<modo>,<cmdline>,<memtype>]

El primer criterio es el nombre del proceso (argumento <nombre>). En nuestro ejemplo, el agente Zabbix lo verá como 'topasrec'. Para hacer coincidir, debe especificar 'topasrec' o dejarlo vacío. El segundo criterio es un nombre de usuario (argumento <usuario>). Para que coincida, debe especificar 'raíz' o dejarlo vacío. El tercer criterio utilizado en la selección de procesos es un argumento <cmdline>. El agente Zabbix 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, 16 de marzo de 2023 '. Para hacer coincidir, debe especificar una expresión regular que coincida con esta cadena o dejarla vacía.

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

FreeBSD

Consulte los valores admitidos para el parámetro 'memtype' en FreeBSD en la tabla.

Valor admitido Descripción Fuente 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 datos kp_eproc.e_vm.vm_dsize o ki_dsize ps -o dsiz
ssize Tamaño de pila kp_eproc.e_vm.vm_ssize o ki_ssize ps -o ssiz

####Linux

Consulte los valores admitidos para el parámetro 'memtype' en Linux en la tabla.

Valor admitido Descripción Fuente en /proc/<pid>/archivo de estado
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 bibliotecas compartidas VmLib
peak Tamaño máximo de 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 del código de proceso + datos + segmentos de pila 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 más antiguos. Por ejemplo, los kernels de Linux 2.4 no admiten los valores hwm, pin, peak, pte y swap.
  2. Hemos observado que el automonitoreo del proceso activo del agente Zabbix con proc.mem[...,...,...,...,data] muestra un valor que es 4 kB más grande que lo informado por la línea VmData en el archivo del agente /proc/<pid>/status. En el momento de la automedición, el segmento de datos del agente aumenta en 4 kB y luego regresa al tamaño anterior.

Solaris

Consulte los valores admitidos para el parámetro 'memtype' en Solaris en la tabla.

Valor admitido Descripción Fuente en 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 predeterminado.