¿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?

1 me gusta

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.

1 me gusta

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

2 Me gusta

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.

1 me gusta