Come diagnosticare un rallentamento?

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)

Qualsiasi suggerimento è apprezzato.

3 Mi Piace

La mia prima tappa sarebbe
vmstat 5 5
sulla riga di comando.

3 Mi Piace

Grazie per il suggerimento. Non ho familiarità con il comando, c’è qualcosa in particolare che dovrei cercare?
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----\n r b swpd free buff cache si so bi bo in cs us sy id wa st\n 1 0 475136 144304 20296 1786100 2 3 2622 447 44 50 19 3 72 1 4\n 0 0 475136 143076 20304 1785312 0 0 65 25 622 584 2 1 95 0 1\n 0 0 475136 141080 20456 1789144 0 0 800 3 459 473 2 1 96 0 1\n 3 0 475136 143092 20572 1783408 0 17 11598 51 733 966 14 6 67 2 12\n 0 0 475648 134688 20376 1791036 0 81 38915 394 1323 1784 10 8 61 8 13\n

1 Mi Piace

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.

5 Mi Piace

Questo è un ottimo consiglio, grazie!

Sto usando l’80% della memoria. È normale? Il calo è dovuto all’arresto e al riavvio dell’app tramite il launcher.

droplet: 4 GB Memory / 2 AMD vCPUs / 80 GB Disk

Ho avviato un nuovo droplet, ho inserito un backup del forum (senza immagini) e ho riscontrato un comportamento simile.

Output di htop, ordinato per memoria:

L’80% non mi sembra problematico.

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.

Ho un htop molto simile sullo stesso VPS (anche se con processore diverso) e non ho cambiato nulla rispetto alle impostazioni predefinite.

Senza sapere nulla, affermerei che mostra solo una cosa: non c’è troppo traffico, se non nessuno, in quel momento.

1 Mi Piace

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.

1 Mi Piace

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?

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.