Estoy usando una máquina basada en código abierto (RHEL 6.2) que ejecuta el software SIEM. Cuando ejecuto el top
comando, veo postgres
y postmaster
ambos con un 96% de uso de CPU. ¿Hay alguna manera de precisar o ver qué causa la acumulación de estos servicios?
postgresql
asadz
fuente
fuente
postgress
que sípostgres
y lo has copiado a mano.Respuestas:
Puede hacer coincidir una ID de back-end específica de Postgres con una ID de proceso del
pg_stat_activity
sistema utilizando la tabla del sistema.SELECT pid, datname, usename, query FROM pg_stat_activity;
Puede ser un buen punto de partida.Una vez que sepa qué consultas se están ejecutando, puede investigar más a fondo (
EXPLAIN
/EXPLAIN ANALYZE
; verificar bloqueos, etc.)fuente
WHERE
cláusula, pero si no tiene una gran cantidad de PID es igual que Fácil de buscar a través de la salida completa. El manual de Postgres tiene detalles adicionales sobre lo que puede obtenerpg_stat_activity
, así como las otras tablas de recopilación de estadísticas (que pueden ayudarlo si su problema no es una consulta del usuario).Yo estaba teniendo el mismo problema. El postgresql está configurado en AWS RDS y tenía una utilización del 100% de la CPU incluso después de aumentar la instancia. Depuré con el método que se muestra aquí y uno de los métodos funcionó para mí.
Verifiqué la consulta que se ejecutó durante más tiempo y llegué a saber que ciertas consultas estaban bloqueadas y se ejecutaban desde hace más de 3-4 horas. Para verificar desde cuánto tiempo se ejecuta la consulta, ejecute el siguiente comando:
Si esto es más de una hora, entonces este es el problema. Elimine la conexión de larga duración y limite la antigüedad máxima de la conexión desde el lado de la aplicación.
fuente
Si este es realmente el administrador de correo que usa toda esa CPU, entonces es probable que tenga problemas de contención de bloqueo, probablemente debido a que es muy alto
max_connections
. Considere bajarmax_connections
y usar un agrupador de conexiones si este es el caso.De lo contrario: Detalles, por favor. Salida completa de
top -b -n 1
para empezar.fuente