Lanzamiento de pgCluu 5.0
Antananarivo, Madagascar – 20 de octubre de 2026
pgCluu
PostgreSQL Cluster Utilization
pgCluu es un programa en Perl que realiza auditorías completas del rendimiento de un cluster PostgreSQL. Consta de dos partes: un colector utilizado para obtener estadísticas del servidor PostgreSQL mediante psql y sar, y un generador de reportes que creará todas las salidas HTML y gráficas.
Se ha publicado la versión 5.0 de pgCluu, una versión principal que añade varias características y nuevos reportes. También corrige problemas reportados desde el lanzamiento de la última versión.
Nuevas características:
- Se añade un reporte sobre los slots de replicación consultados en pg_replication_slots.
- Se añade la recopilación de información de pg_hba_file_rules
- Se muestran únicamente los eventos de espera que representen más del 0,1 % del tiempo total de espera observado.
- Se añade la recopilación de estadísticas de entrada/salida (E/S) mediante pg_stat_io (PostgreSQL 16 y versiones posteriores).
- Se añaden reportes sobre:
- Rendimiento de E/S por tipo de proceso backend
- Escrituras y desalojos en los búferes compartidos
- Tasa de aciertos de búferes y búferes circulares
- Latencia y tamaño de las operaciones de E/S
- Operaciones de E/S del WAL
- Operaciones de E/S sobre relaciones temporales
- E/S asíncrona (PostgreSQL 18 en adelante)
- Se amplía la recopilación de parámetros de ajuste del kernel y se eliminan shmmax y shmall
- vm.dirty_expire_centisecs y vm.dirty_writeback_centisecs, que no estaban contemplados por el filtro sysctl, así como todos los demás parámetros vm.dirty_*,
- vm.min_free_kbytes, vm.watermark_scale_factor y kernel.numa_balancing,
- net.core.somaxconn, net.ipv4.ip_local_port_range, net.core.rmem_max, net.core.wmem_max, fs.file-max y fs.nr_open,
- /sys/kernel/mm/transparent_hugepage/shmem_enabled: la memoria compartida de PostgreSQL utiliza memoria compartida anónima, por lo que este es el ajuste pertinente para los búferes compartidos, no enabled,
- el regulador de frecuencia de todas las CPU, en lugar de limitarse a cpu0; el controlador cpuidle; el estado de intel_pstate y su preferencia de rendimiento energético; y el número de nodos NUMA,
- read_ahead_kb, nr_requests, max_sectors_kb y wbt_lat_usec para cada dispositivo de bloques.
- Se recopila e informa sobre los límites del proceso postmaster. pgcluu_collectd almacena ahora los siguientes datos en una nueva sección denominada POSTMASTER dentro de sysinfo.txt:
- El PID del proceso postmaster, identificado como proceso padre de checkpointer (cuya entrada en /proc es accesible para cualquier usuario). En versiones anteriores a PostgreSQL 10, el PID se obtiene del archivo postmaster.pid.,
- El valor de oom_score_adj, para el que se recomienda configurar -1000 en el proceso postmaster,
- Los límites flexibles (soft) y máximos (hard) relativos a los archivos abiertos, el número de procesos y la memoria bloqueada,
- Los límites de los grupos de control (cgroups): memory.max, memory.high, memory.swap.max, cpu.max, cpu.weight, io.max y pids.max, además de los contadores de eventos oom y oom_kill de memory.events en cgroup v2, incluido el modo híbrido. Para cgroup v1, también se recopilan los límites de memoria y las cuotas de CPU. pgcluu y pgcluu.cgi presentan esta información en el panel Kernel de la sección de información del sistema. Los tamaños y las cuotas de CPU se muestran con un formato legible, y los valores de oom_score_adj y los límites de los procesos incluyen información adicional mediante ayudas emergentes.
- Se añade información sobre los períodos de espera causados por la presión sobre los recursos del kernel y se generan informes de eventos de memoria. En cada ejecución, pgcluu_collectd añade a kernel_stats.csv los valores acumulados de los siguientes contadores:
- La información PSI (Pressure Stall Information) del host (/proc/pressure, disponible a partir de la versión 4.20 del kernel) y del cgroup v2 del proceso postmaster, incluidos los indicadores de presión de CPU, memoria y E/S,
- Los eventos de memoria del cgroup del proceso postmaster, registrados en memory.events: high, max, oom y oom_kill,
- Los contadores de /proc/vmstat que sar no proporciona: fallos de asignación que provocan la recuperación directa de memoria (allocstall), compactación de memoria, asignaciones y fallos de reserva de páginas enormes transparentes, terminaciones de procesos por falta de memoria (OOM), asignaciones NUMA y relecturas de páginas de la caché de páginas.
- pgcluu and pgcluu.cgi incluyen dos nuevas páginas en el menú System:
- Pressure stall information: muestra el porcentaje de tiempo durante el cual algunas o todas las tareas sufren esperas debido a la presión sobre la CPU, la memoria o la E/S, tanto en el host como en el cgroup de PostgreSQL.,
- Kernel memory events: presenta información sobre los bloqueos durante las asignaciones de memoria, la compactación de memoria, las páginas enormes transparentes, las terminaciones de procesos por OOM, los eventos de memoria del cgroup, las relecturas de páginas de la caché de páginas y las asignaciones NUMA.
Para la lista completa de cambios, correcciones de errores y agradecimientos, consulten el ChangeLog.
Sobre pgCluu:
El objetivo de este proyecto es proporcionar una herramienta completa para la auditoría de PostgreSQL que permita auditar de manera sencilla un servidor local o remoto sin necesidad de dependencia alguna.
Aunque se disponga únicamente de un archivo de salida sar, también es posible utilizar pgCluu para obtener gráficos sobre el uso del sistema a partir de este archivo.
Créditos
pgCluu es una colección original de herramientas creadas durante mi trabajo en Dalibo y HexaCluster. Las mismas se publican bajo licencia PostgreSQL.
pgCluu ha sido creado y es mantenido por Gilles Darold. Se agradece cualquier contribución que nos ayude a mejorar la herramienta. Pueden enviar sus ideas, solicitudes de características o parches a través de las herramientas de GitHub.
Enlaces
Vean un ejemplo de reporte en http://pgcluu.darold.net/example/index.html
- Página web: http://pgcluu.darold.net/
- Descargas: https://github.com/darold/pgcluu/releases
- Desarrollo: https://github.com/darold/pgcluu
- Documentación: https://github.com/darold/pgcluu/blob/master/README

