Stiamo gestendo diversi siti Discourse con multisito sotto una singola applicazione. Recentemente, abbiamo eseguito un’importazione massiva di utenti (centinaia di migliaia di utenti su 6 siti). Dopo le importazioni, Sidekiq sta elaborando i processi in background molto lentamente. La dashboard di Sidekiq mostra un enorme arretrato e i processi vengono svuotati a una velocità molto inferiore al previsto.
Dettagli dell’ambiente:
- La VM è stata aggiornata a 16 CPU / 16 GB di RAM.
- Tuttavia, nell’interfaccia di Sidekiq, vediamo solo 5 thread e sembra che venga utilizzata solo una piccola parte delle risorse.
- La coda di importazione principale (“nursingjobs” come genitore multisito) sta gestendo i processi per tutti i siti figli, ma il throughput dei processi è molto basso.
- Metriche del server: CPU a volte all’80-90%, memoria intorno a 6,7/7,2 GB.
Stiamo cercando di:
- Accelerare l’elaborazione dei processi Sidekiq/in background per svuotare i grandi arretrati post-importazione.
- Garantire che Discourse utilizzi tutte le risorse disponibili (CPU/RAM).
- Comprendere se ci sono limiti di thread/processi che necessitano di aggiustamenti.
Domande:
- Qual è il modo migliore per configurare Sidekiq/Discourse per un throughput elevato post-importazione?
- Quali sono le impostazioni consigliate per UNICORN_SIDEKIQS e DISCOURSE_SIDEKIQ_WORKERS su sistemi multi-core di grandi dimensioni?
- Ci sono impostazioni di Postgres o altre impostazioni di app.yml che dovremmo modificare per evitare errori nel pool del database quando si aumenta la concorrenza di Sidekiq?
- Ci sono best practice per svuotare rapidamente e in sicurezza enormi arretrati di Sidekiq dopo le importazioni?
Statistiche/screenshot di Sidekiq disponibili se utili!
