¿Cómo ajustar los parámetros para un sitio con tráfico grande y pesado?

Estoy ejecutando una comunidad con 38k usuarios en una VM de 24 núcleos y 64 GB. Establecí DISCOURSE_UNICORN_WORKERS en 48.

Recientemente, el sitio parece responder lentamente después de que la UV alcanza los 20k un día y la PV alcanza los 500k. Los usuarios reciben sus notificaciones varias horas después de que realmente suceden.

La carga de trabajo de la CPU es de alrededor del 15%. Por lo tanto, creo que esto se debe a muy pocos trabajadores de Sidekiq y establecí DISCOURSE_UNICORN_SIDEKIQS en 10 y DISCOURSE_DB_POOL en 13. Pero esto causa muchos errores 500 en muchas páginas. Y creo que es demasiado para PostgreSQL.

Entonces, me pregunto si Discourse se está escalando automáticamente a un servidor de 24 núcleos sin configuración manual. ¿O cómo establecer parámetros concurrentes adecuados para un sitio grande como el mío?

La forma más fácil que he encontrado de escalar automáticamente los recursos es simplemente volver a ejecutar ./discourse-setup, que recrea el archivo app.yml con nuevos valores para los parámetros relevantes.

Hay algunos temas sobre la optimización de sitios grandes. Probablemente necesites darle más memoria a postgres.

Sí, intenté modificar max_connections y shared_buffers en Postgres y parece que funciona.

Puedo ver el cambio de db_shared_buffers en app.yml, pero shared_buffers de Postgres dentro del contenedor parece sin cambios.

De todos modos, mi problema está casi resuelto. Muchas gracias.