Nous exécutons plusieurs sites Discourse avec multisite sous une seule application. Récemment, nous avons effectué un lot d’importations d’utilisateurs à grande échelle (centaines de milliers d’utilisateurs sur 6 sites). Après les importations, Sidekiq traite les tâches en arrière-plan très lentement. Le tableau de bord Sidekiq montre une énorme file d’attente et les tâches sont traitées à un rythme beaucoup plus lent que prévu.
Détails de l’environnement :
- La VM a été mise à niveau vers 16 processeurs / 16 Go de RAM.
- Cependant, dans l’interface Sidekiq, nous ne voyons que 5 threads et il semble que seule une petite partie des ressources soit utilisée.
- La file d’attente d’importation principale (“nursingjobs” en tant que parent multisite) gère les tâches de tous les sites enfants, mais le débit des tâches est très faible.
- Métriques du serveur : CPU parfois à 80–90 %, mémoire autour de 6,7/7,2 Go.
Nous cherchons à :
- Accélérer le traitement des tâches Sidekiq/arrière-plan pour vider les énormes files d’attente post-importation.
- S’assurer que Discourse utilise toutes les ressources disponibles (CPU/RAM).
- Comprendre s’il existe des limites de threads/processus qui doivent être ajustées.
Questions :
- Quelle est la meilleure façon de configurer Sidekiq/Discourse pour un débit élevé après une importation ?
- Quels sont les paramètres recommandés pour UNICORN_SIDEKIQS et DISCOURSE_SIDEKIQ_WORKERS sur de grands systèmes multi-cœurs ?
- Existe-t-il des paramètres Postgres ou d’autres paramètres app.yml que nous devrions ajuster pour éviter les erreurs de pool de base de données lors de l’augmentation de la concurrence Sidekiq ?
- Des meilleures pratiques pour vider rapidement et en toute sécurité d’énormes files d’attente Sidekiq après des importations ?
Statistiques/captures d’écran Sidekiq disponibles si utiles !
