Estamos ejecutando varios sitios de Discourse con multisite bajo una sola aplicación. Recientemente, realizamos una importación masiva de usuarios (cientos de miles en 6 sitios). Después de las importaciones, Sidekiq procesa los trabajos en segundo plano muy lentamente. El panel de Sidekiq muestra una gran acumulación, y los trabajos se están limpiando mucho más lentamente de lo esperado.
Detalles del entorno:
- La VM fue actualizada a 16 CPUs / 16GB de RAM.
- Sin embargo, en la interfaz de Sidekiq, solo se ven 5 hilos y parece que solo una pequeña porción de los recursos se están usando.
- La cola principal de importación (“nursingjobs” como padre de multisite) maneja trabajos para todos los sitios hijos, pero el rendimiento de los trabajos es muy bajo.
- Métricas del servidor: CPU a veces al 80-90%, memoria alrededor de 6.7/7.2GB.
Queremos:
- Acelerar el procesamiento de trabajos en segundo plano de Sidekiq para limpiar grandes acumulaciones después de la importación.
- Asegurar que Discourse aproveche todos los recursos disponibles (CPU/RAM).
- Entender si existen límites de hilos/procesos que necesiten ajuste.
Preguntas:
- ¿Cuál es la mejor forma de configurar Sidekiq/Discourse para un alto rendimiento después de la importación?
- ¿Cuáles son las configuraciones recomendadas para UNICORN_SIDEKIQS y DISCOURSE_SIDEKIQ_WORKERS en sistemas grandes con múltiples núcleos?
- ¿Hay ajustes en Postgres u otro app.yml que debamos modificar para evitar errores en el pool de la base de datos al aumentar la concurrencia de Sidekiq?
- ¿Cuáles son las mejores prácticas para limpiar rápidamente y de forma segura grandes acumulaciones en Sidekiq después de las importaciones?
¡Las estadísticas/hacer capturas de pantalla de Sidekiq están disponibles si son útiles!|690x212](upload://a0D2vFQCoDJJYTD4MUQm9kiTuHz.jpeg)