Esto no me parece un problema de memoria; solo hay alrededor de 6 GB ocupados por las aplicaciones. Se está produciendo mucha lectura, lo que, a mi parecer (junto con que sidekiq esté ocupado), quizás postgres esté leyendo muchos datos antiguos del disco, tal vez para realizar algunas tareas de estadísticas. Si la base de datos no cabe en la RAM, es posible que realice muchas lecturas si se está accediendo a esos datos más antiguos. Eso es lo que me parece.
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
admin 2510013 15.8 1.6 7383364 514764 ? SNl 12:55 56:45 sidekiq 7.3.9 discourse [3 of 5 busy]
systemd+ 2848301 26.9 25.3 8058104 7806820 ? Rs 17:45 18:18 postgres: 13/main: discourse discourse [local] SELECT
systemd+ 2870880 4.3 22.9 8058516 7072000 ? Ds 18:03 2:09 postgres: 13/main: discourse discourse [local] SELECT
systemd+ 2875058 21.0 25.4 8101952 7848140 ? Rs 18:07 9:46 postgres: 13/main: discourse discourse [local] UPDATE
systemd+ 2924006 30.2 25.3 8112844 7824292 ? Rs 18:44 2:44 postgres: 13/main: discourse discourse [local] UPDATE
jystemd+ 2929546 12.8 24.9 8049520 7694404 ? Ss 18:48 0:39 postgres: 13/main: discourse discourse [local] SELECT
systemd+ 2931802 17.7 24.5 8045744 7559492 ? Ss 18:50 0:36 postgres: 13/main: parallel worker for PID 946796
systemd+ 2931803 17.7 24.5 8045744 7557568 ? Ds 18:50 0:36 postgres: 13/main: parallel worker for PID 946796
Yo miraría primero a sidekiq; apuesto a que está ocupado ejecutando actualizaciones. Comprueba la URL /sidekiq mientras inicias sesión como administrador para ver qué está haciendo. Probablemente te mostrará algunas tareas de actualización de larga duración.
También puedes, en el servidor SQL:
SELECT pid, application_name, query
FROM pg_stat_activity
WHERE state IS NOT NULL
AND state != 'idle';
para ver qué consultas se están ejecutando y qué las está llamando. Eso te dará una pista sobre lo que está causando la carga.
¿Tienes habilitadas las cabeceras de rendimiento? Puedes activarlas y capturarlas en los registros para que te digan cuánto tiempo está dedicando Discourse a cada parte.