Il mio sito ha recentemente subito un leggero e improvviso rallentamento nel caricamento delle pagine. Ho avuto un problema in cui un backup è stato generato e ha superato lo spazio sul mio volume DigitalOcean, mettendo fuori uso il sito. Da allora ho avuto difficoltà a ricostruire il sito. Questi eventi potrebbero essere correlati in base alla tempistica. Attualmente il sito sembra essere in uno stato stabile ma solo più lento di quanto fossi abituato.
Potrei entrare nei dettagli di cosa è successo di più, ma preferirei fare una domanda più generale. Quali sono alcune tecniche per diagnosticare la causa di un rallentamento? Il mio droplet ha un utilizzo medio della CPU del 20%, quindi sembro avere risorse sufficienti (4 GB di memoria / 2 vCPU AMD / 80 GB di disco, ~15k visualizzazioni di pagina al giorno)
Grazie! Se ci fosse stata una carenza di memoria, i numeri della cache sarebbero stati piccoli e, se ci fosse stata molta paginazione, le colonne si e so sarebbero state grandi. Ma non è così.
Vediamo un grande picco in bi e bo, che è tipicamente attività del disco. Mi chiedo se qualcosa da qualche parte stia costruendo, riparando o scansionando qualcosa.
Forse prova a eseguire ps auxrc
ogni cinque secondi per circa un minuto, per vedere se riesci a cogliere un processo impegnato in azione.
Ci sono altre utility che potrebbero non essere già installate: forse cerca “Come monitorare l’I/O del disco in un sistema Linux” o simili.
Vale la pena notare che se hai dubbi sull’integrità del tuo sistema, ricostruirlo da un backup potrebbe essere il modo più rapido per procedere. Ma assicurati di avere una copia esterna del backup, se non due, in caso di incidente. E, idealmente, esegui l’installazione su una nuova istanza e tieni quella esistente finché la nuova non funziona correttamente.
Più interessante è che hai molti processi sidekiq e tuttavia vedo l’annotazione “0 di 5 occupati” - ne hai più di 5. Sembra che tu abbia anche molti thread unicorn.
Suggerisco un nuovo argomento qui, con l’output del tuo htop, inclusa la tua configurazione yml riguardo all’eventuale modifica del conteggio dei tuoi unicorn. Chiedi se questo insieme di processi sembra ragionevole.
Ah sì, avrei dovuto controllare il mio htop: molto simile.
Un’altra idea molto diversa, per l’osservazione originale di “un rallentamento”, è attivare il mini-profiler usando Alt-P, quindi accedere a una pagina tipica e grande del tuo forum e vedere quali query vengono effettuate e quanto tempo impiegano, cliccando sulla cifra del tempo che appare in alto a destra.
Sono riuscito a fare un apt upgrade e anche un rebuild. Questo problema: Pups error on rebuild 🐕 mi ha impedito di fare il rebuild per un po’.
Dal rebuild, sembra migliorato. Non mi piace operare basandomi sulle sensazioni in questo caso, preferirei avere analytics e dati misurabili. Apprezzo i suggerimenti @Ed_S, saranno utili per un ulteriore monitoraggio.
Mi chiedo se sia possibile acquisire alcuni di questi dati di profiling per mostrare la “salute” dell’istanza tramite la pagina di amministrazione. Forse un’idea per un plugin o una futura funzionalità core?