Kinsta APM è un potente strumento per la risoluzione dei problemi dei siti web. Questo articolo illustrerà alcuni scenari per la risoluzione dei problemi di prestazioni di un sito utilizzando lo strumento APM.

Se non avete familiarità con le impostazioni e la terminologia dello strumento APM, consultate la nostra guida su come usare lo Strumento APM di Kinsta.

Per Iniziare

Prima di cominciare a usare lo strumento APM per risolvere un problema, ci sono alcune operazioni da compiere, indipendentemente dal problema:

  1. Assicuratevi di poter ricreare il problema se non si verifica al momento. Cercate degli schemi che indichino quando si verifica il problema o se alcune azioni specifiche sembrano scatenarlo (ad esempio la modifica di una pagina, l’aggiunta di un prodotto al carrello di un ecommerce, il caricamento di immagini, ecc.)
  2. Attivate lo strumento APM in MyKinsta e concedetegli qualche minuto per iniziare a raccogliere i dati. Lo strumento APM può registrare e analizzare i dati solo quando è abilitato.
  3. Una volta che lo strumento APM inizia a raccogliere i dati, ricreate il problema per registrare le informazioni necessarie.
  4. Se Redis è abilitato sul vostro sito, assicuratevi di utilizzare il plugin WP Redis o Redis Object Cache (ma non entrambi). Potremmo non essere in grado di raccogliere e mostrare i dati di Redis da altri plugin nello strumento APM di Kinsta.

Analizzare le Pagine o le Azioni Lente

In questo esempio, le pagine si caricano rapidamente, ma tutto rallenta quando si aggiunge un prodotto al carrello, sia esso semplice o variabile.

Dopo aver aggiunto alcuni prodotti al carrello, diamo un’occhiata ai risultati in APM (Siti WordPress > nome del sito > APM) e vediamo che la transazione /single-product è in cima alla lista delle transazioni più lente, con una durata massima di oltre 5 secondi e una durata media di oltre 2 secondi.

Selezionare la transazione di un singolo prodotto in cima all'elenco delle transazioni più lente in APM.
Selezionare la transazione di un singolo prodotto in cima all’elenco delle transazioni più lente in APM.

Cliccando su questa transazione si apre la finestra modale/pop-up Campioni di transazioni dove possiamo selezionare la transazione più lenta (la prima dell’elenco) per avere maggiori informazioni.

Selezionare il campione più lento nell'elenco dei campioni di transazioni.
Selezionare il campione più lento nell’elenco dei campioni di transazioni.

Questo ci porta alla Cronologia delle tracce delle transazioni, dove possiamo ordinare le transazioni per Durata (tempo) per vedere quali sono i processi più lenti in questo campione di transazioni. Qui possiamo vedere che l’intervallo update_card_payment è il processo più lento nella timeline, con 5.002,21 ms su una transazione di 5.535,61 ms.

L'intervallo update_card_payment occupa 5.002,21 ms della transazione.
L’intervallo update_card_payment occupa 5.002,21 ms della transazione.

Facendo clic su questo intervallo si apre la finestra modale/pop-up dei Dati intervallo e include la traccia dello stack dell’intervallo.

I dati dell'intervallo, compresa la traccia dello stack.
I dati dell’intervallo, compresa la traccia dello stack.

Possiamo vedere che l’hook action:woocommerce_add_to_cart di WordPress è associato a questo intervallo nei dettagli dell’intervallo.

Ci sono un paio di modi per individuare il plugin o il tema a cui è associato.

Se avete dimestichezza con la riga di comando, potete usare il comando grep per cercare la funzione update_card_payment e vedere quali file di plugin o temi contengono tale funzione.

In alternativa, potete consultare la scheda WordPress alla voce Risultati del monitoraggio e cercare un plugin con una Durata totale e una Durata massima simili. Molto probabilmente sarà in cima all’elenco.

Visualizzare i plugin WordPress più lenti nella scheda WordPress in Risultati del monitoraggio.
Visualizzare i plugin WordPress più lenti nella scheda WordPress in Risultati del monitoraggio.

Potete confermare la corrispondenza selezionando il plugin nell’elenco dei plugin WordPress più lenti. Se il plugin non appare nella colonna dei plugin WordPress nella finestra modale/pop-up dei Campioni di transazione, selezionate il campione di transazione più lento per visualizzare la cronologia della traccia delle transazioni.

Selezionare il campione di transazione più lento per visualizzare la cronologia delle transazioni.
Selezionare il campione di transazione più lento per visualizzare la cronologia delle transazioni.

Ordinate la cronologia per Durata e cercate il nome della stessa funzione (ad esempio update_card_payment) in cima all’elenco.

Ordinare la timeline per durata e cercare il nome della funzione nella colonna Intervalli.
Ordinare la timeline per durata e cercare il nome della funzione nella colonna Intervalli.

Indagare sulla Lentezza Complessiva

La lentezza generale di un sito è spesso dovuta a un plugin ed è uno dei primi punti da controllare. Se è un plugin a causare la lentezza del sito, di solito è possibile identificarlo visualizzando la scheda WordPress (Siti WordPress > nome del sito > APM > WordPress). Nella schermata qui sotto, la percentuale di durata totale del plugin evidenziato è superiore al 98% e la durata massima e media sono piuttosto elevate.

La percentuale di durata totale, la durata massima e la durata media di un plugin.
La percentuale di durata totale, la durata massima e la durata media di un plugin.

Ciò indica che questo plugin è la causa più probabile della lentezza complessiva del sito. Per confermarlo, possiamo disattivare il plugin, osservare le prestazioni del sito e controllare nuovamente i risultati nello strumento APM dopo aver raccolto un numero sufficiente di dati. Se siete sicuri che il plugin è configurato correttamente ma continua a rallentare il sito, vi consigliamo di contattare lo sviluppatore del plugin per risolvere il problema.

Individuare i Problemi Intermittenti di terze parti

Le richieste esterne sono richieste HTTP fatte dal sito a un altro server (di terze parti). I plugin o i temi di solito fanno queste richieste per caricare script o fogli di stile o per comunicare con un’API.

Quando si cerca di risolve un possibile problema esterno, è importante precisare che lo strumento APM registra le transazioni esterne lente lato server. Molte richieste esterne possono essere effettuate da un sito lato client, e queste non verrebbero registrate dallo strumento APM. Per analizzare le richieste esterne lato client, dovrete utilizzare uno strumento come GTmetrix o gli strumenti di sviluppo del vostro browser.

Per visualizzare le richieste esterne lente, andate alla scheda Esterno sotto Risultati del monitoraggio per visualizzare le Richieste esterne più lente. In questo esempio, abbiamo notato una certa lentezza nel caricamento delle immagini nella libreria multimediale, con alcuni caricamenti che richiedono 5 minuti o più per essere completati.

Iniziamo a vedere come appaiono le richieste esterne quando non stiamo facendo altro che accedere alla bacheca di WordPress. Prima di caricare le immagini nella libreria multimediale, le richieste POST a wp-cron sono le più lente, con 273,78 ms di durata massima e 1.957,81 ms di durata totale.

Le richieste esterne più lente in APM.
Le richieste esterne più lente in APM.

Quando carichiamo diverse immagini di dimensioni comprese tra 3MB e 17MB, ci vogliono diversi minuti per completare il caricamento. Osservando nuovamente le richieste Esterne, vediamo che le richieste POST a smushpro.wpmudev.com sono le più lente, con una durata massima di 1.703,14 ms e una durata totale di 82.710,85 ms.

Aggiornamento delle richieste esterne più lente dopo il caricamento e l'ottimizzazione delle immagini.
Aggiornamento delle richieste esterne più lente dopo il caricamento e l’ottimizzazione delle immagini.

Facendo clic su questa transazione, si apre la finestra modale/pop-up Campioni di transazioni in cui possiamo selezionare la transazione più lenta (la prima dell’elenco) per vedere i dettagli.

Selezionare il campione di transazione più lento nelle richieste esterne.
Selezionare il campione di transazione più lento nelle richieste esterne.

Questo ci porta alla Cronologia delle traccia delle transazioni, dove possiamo ordinare le transazioni per Durata (tempo) per vedere quali sono gli intervalli più lenti. In questo campione vediamo che diverse richieste POST a smushpro.wpmudev.com sono le più lente, con il totale di queste richieste POST che occupano 6.712,64 ms di una transazione di 7.168,58 ms.

Visualizzazione di tutte le richieste a smushpro.wpmudev.com nella cronologia delle transazioni.
Visualizzazione di tutte le richieste a smushpro.wpmudev.com nella cronologia delle transazioni.

Possiamo anche osservare che la durata di ogni richiesta varia in modo significativo. La richiesta più breve impiega solo 138,2 ms e la più lunga impiega 1.703,14 ms. Quindi, mentre il plugin Smush ottimizza le nostre immagini, ognuna di esse genera una richiesta esterna che si somma e può rallentare il sito.

In questo caso, ottimizzare le immagini prima del caricamento invece di affidarsi a un plugin per l’ottimizzazione delle immagini ridurrebbe notevolmente le richieste esterne. Questo è uno di quei casi in cui dobbiamo decidere cosa è più importante, la convenienza o le prestazioni del sito. Possiamo mantenere il plugin se possiamo accettare la necessaria lentezza causata dalle richieste esterne. Se invece preferiamo o abbiamo bisogno di migliorare le prestazioni del sito, la soluzione migliore è rimuovere il plugin e ottimizzare le immagini prima di caricarle.

Riepilogo

Seguendo gli esempi precedenti, potete usare lo strumento APM di Kinsta per individuare i problemi di performance del vostro sito. Ogni situazione e ogni sito sono diversi, ma potete applicare le soluzioni generali di risoluzione dei problemi descritti qui per individuare e risolvere i problemi di prestazioni del sito.