La mia installazione di Discourse è diventata sempre più lenta nelle ultime settimane. In passato, quando ciò accadeva, la ricostruzione dell’app aiutava. Tuttavia, ora non sembra più aiutare.
Ho cercato consigli su questo forum e ho provato alcune ottimizzazioni del database (vacuum full verbose, rebuild index, vacuum analyze verbose).
Tuttavia, nessuna di queste sembra aiutare e quando avvio il container, ci vuole molto, molto tempo prima che io possa effettivamente connettermi al forum.
Se la situazione continua così, il forum diventerà alla fine completamente inutilizzabile. Avete qualche idea da dove iniziare a cercare?
Sembra che il salvataggio di un post sia particolarmente soggetto a timeout e fallimenti.
Non sono sicuro che questo possa essere un indizio su cosa stia succedendo.
L’output di vmstat ci dice che, così come stanno le cose, non c’è abbastanza RAM.
Potrebbe essere che Discourse stia funzionando come dovrebbe, e tutto sia a posto, ma che i tuoi dati siano cresciuti al punto che 4G di RAM non sono sufficienti.
Oppure potrebbe essere che qualcosa sia andato storto e molta RAM sia in uso quando non dovrebbe esserlo.
Una misura delle dimensioni è fare un backup senza allegati e vedere quanto è grande.
Potrebbe essere che il mini-profiler dia un indizio su quali azioni del database stiano richiedendo così tanto tempo.
Se hai il budget per raddoppiare la RAM, fallo. (Se ti prendi cura di aumentare la RAM ma lasci invariato lo storage, se hai tale opzione dal tuo provider, allora questa può essere una modifica reversibile e persino temporanea.)
Se non puoi permetterti più RAM, puoi provare a impostare valori inferiori per db_shared_buffers (diciamo 128 MB o meno) e limitare UNICORN_WORKERS a soli 2 nel frattempo, poiché devi interrompere lo swapping il prima possibile.
Più RAM è piuttosto costosa dal mio provider di hosting, quindi esplorerò prima altre opzioni. (E sono preoccupato che cambiarla possa compromettere il mio prezzo grandfathered…)
Ho cambiato db_shared_buffers in 128Mb e UNICORN_WORKERS in 2.
È sufficiente launcher app stop / start per rendere effettive queste impostazioni?
Con Alt+P sulla tastiera, le azioni successive del forum dovrebbero mostrare una stringa di temporizzazione appena sotto il banner del forum (per me, sulla destra) e se si fa clic sulla temporizzazione, si aprirà una finestra popup con alcune statistiche.
È più o meno lo stesso del mio, in esecuzione con 1 GB di RAM. Ho 2k argomenti, 15k post, 500+ iscrizioni.
Qual è la storia del tuo Discourse? Ricordo vagamente un tempo in passato in cui si doveva creare un indice per una tabella per motivi di prestazioni.
E i plugin? Puoi eseguire azioni in modalità provvisoria per vedere se vengono eseguite più velocemente?
C’è un posto facile dove trovare queste statistiche?
La maggior parte delle statistiche che vedo mi mostrano cosa è successo nell’ultimo giorno o settimana, ma nessun totale.
Non sono sicuro di cosa intendi per cronologia. Ma l’ho iniziato nel marzo 2021.
La prima impressione è che la modalità sicura non sia più veloce. Ci giocherò e userò il mini-profiler per vedere se questa impressione regge.
Nella pagina /about, c’è una colonna per il totale.
Sembra che la tua macchina non sia stata riavviata per ben oltre un anno - probabilmente vale la pena farlo, e aggiornare per la sicurezza allo stesso tempo. È solo possibile che il riavvio aiuti.
Penso di aver notato che il tuo server è configurato per utilizzare l’hypervisor mentre il mio è configurato per utilizzare lxc. Non so se sia importante. (Il mio sistema mostra un processo /usr/bin/lxcfs che il tuo non ha, e il tuo mostra un processo hv_vss_daemon che il mio non ha.)
Inoltre, forse potresti condividere l’output di df -T e swapon.
Sono d’accordo con un atteggiamento scettico su questo! Ma non lo suggerisco alla leggera: sono abbastanza sicuro di aver visto un caso di un sistema in esecuzione da molto tempo che è migliorato con un riavvio. (Modifica: qui, anche se era un caso diverso.)