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:
- 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 deproc.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.
-
No utilice
ps -efpara consultar los procesos, ya que solo muestra los procesos que no pertenecen al kernel. Utiliceps -Afpara ver todos los procesos que podrá ver el agent de Zabbix. -
Veamos el ejemplo de
topasrecpara comprender cómoproc.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á comotopasrec. Para que coincida, debe especificartopasreco dejarlo vacío. - El segundo criterio es un nombre de usuario (argumento
<user>). Para que coincida, debe especificarrooto 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:
- No todos los valores de
memtypeson compatibles con los kernels de Linux antiguos. Por ejemplo, los kernels de Linux 2.4 no son compatibles con los valoreshwm,pin,peak,pteyswap. - 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íneaVmDatadel archivo/proc/<pid>/statusdel 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.