Utilizzare WP All Import, WordPress Importer e plugin simili per importare file XML, CSV, WXR e immagini è un’attività frequente per sviluppatori e gestori di siti con contenuti che cambiano frequentemente. Ma è anche frequente che si verifichino timeout e problemi di prestazioni del sito web durante l’elaborazione di queste importazioni.
In questo articolo descriveremo i passi che potete intraprendere per lavorare a modo vostro durante una procedura di importazione impegnativa.
Si noti che non possiamo garantire che ogni procedura di importazione venga eseguita con successo sulla nostra piattaforma. Se l’importazione non può essere eseguita con successo su Kinsta, consigliamo di eseguire l’importazione in un ambiente di sviluppo locale e poi di importare il database o la tabella aggiornata nel database del vostro sito web.
- Perché le importazioni causano timeout e problemi di performance?
- Gestire i timeout PHP
- Gestire i timeout HTTP
- Risolvere i problemi di performance del sito
- Trovare aiuto
- Passi successivi – workflow di sviluppo locale
Perché le importazioni causano timeout e problemi di performance?
Ci sono due tipi di timeout in cui incorrono le grosse procedure di importazione:
- I timeout PHP si verificano se un singolo processo PHP viene eseguito per un tempo superiore al max_execution_time o al max_input_time impostato nella configurazione di PHP. Quando questo si verifica, di solito viene visualizzato un errore del server 502.
- I timeout HTTP si verificano quando la connessione tra il browser e il server viene tenuta aperta per troppo tempo. Quando ciò si verifica, di solito viene visualizzato un errore di 504 gateway timeout.
È frequente che le prestazioni di un sito siano inferiori anche quando è in corso una grande importazione. Questo perché PHP e MySQL sono impegnati a gestire il processo di importazione. Questo fa sì che il traffico regolare verso il sito debba attendere fino a quando PHP e MySQL non siano disponibili per generare la pagina richiesta.
Gestire i timeout PHP
Per i siti ospitati su Kinsta, i valori PHP max_execution_time
e max_input_time
sono impostati di default a 300 secondi. I valori massimi di timeout PHP disponibili sulla nostra piattaforma si basano sul vostro piano di hosting attuale.
Se si verificano timeout PHP, vi consigliamo di collaborare con una persona esperta di sviluppo per risolvere il problema. Per esempio, invece di eseguire un processo di importazione tramite una lunga richiesta PHP, sarebbe meglio eseguire l’importazione direttamente sul container utilizzando WP-CLI o uno script PHP o Bash locale.
Gestire i timeout HTTP
Per i siti ospitati su Kinsta, i timeout HTTP si verificano in genere dopo 60 secondi. La progettazione della nostra infrastruttura non permette di aumentare la durata del timeout HTTP.
Se si verifica un timeout HTTP, ci sono due passaggi da provare per tentare di risolvere il problema:
- Se il processo si interrompe durante il caricamento del file di importazione, passate a una connessione internet più veloce e riavviate il processo.
- Se utilizzate uno strumento con supporto per WP-CLI, come il plugin WordPress Importer, potete eseguire l’importazione direttamente sul server e bypassare completamente la connessione HTTP.
Si noti che l’esecuzione di un’importazione su SSH è una modifica al contenuto del vostro sito web che non rientra nell’ambito di ciò che il nostro team di supporto può fare per assistervi. Inoltre, se non avete familiarità con SSH, dovrete imparare a utilizzare questo potente strumento o lavorare con uno sviluppatore per eseguire l’importazione su SSH.
Risolvere i problemi di performance del sito
Se la procedura di importazione viene eseguita correttamente, ma il vostro sito non funziona bene durante il processo, avete due opzioni:
- Programmare l’attività di importazione per un periodo di basso traffico per ridurre al minimo l’impatto sui visitatori del vostro sito.
- Effettuare l’upgrade a un piano con più PHP worker per il vostro sito live. Se i problemi di performance sono dovuti all’indisponibilità di PHP a gestire più richieste, l’aggiornamento temporaneo ad un piano con un maggior numero di PHP worker significherà che PHP ha maggiore capacità di gestire sia il traffico verso il sito che l’importazione.
- L’upgrade di un piano non vi sarà di aiuto se state cercando di eseguire un’importazione su un sito in staging. Il nostro ambiente di staging ha un set costante di PHP worker e non avrà cambiamenti in seguito all’upgrade del piano.
L’upgrade dei piani per ottenere un maggior numero di PHP worker non sarà di aiuto in ogni caso. Se il vostro sito funziona lentamente perché il database (MySQL) è impegnato ad inserire contenuti nel database, è improbabile che l’aggiunta di altri PHP worker migliori le prestazioni del vostro sito.
Trovare aiuto
Se avete lavorato con i suggerimenti precedenti di questo articolo e avete ancora problemi e desiderate assistenza, il passo successivo sarebbe quello di contattare il nostro team di supporto. Tuttavia, prima di aprire una conversazione con il nostro team di supporto, vi preghiamo di raccogliere quante più informazioni possibili.
- Avviate l’importazione e misurate il tempo che trascorre prima che il processo fallisca. Se il processo fallisce dopo 1 minuto, è probabile che si verifichi un timeout HTTP. Se il processo fallisce dopo 5 minuti, è probabile che si verifichi un timeout PHP. Se fallisce in un altro momento è probabile che si stia incorrendo in un altro limite o errore e che non sia una questione di timeout.
- Controllate i log degli errori al momento del fallimento dell’importazione e vedete se è stato registrato un errore al momento del fallimento.
- Fate uno screenshot del messaggio di errore o della pagina di errore.
- Scrivete una descrizione concisa del tipo di file che state cercando di importare, com’è stato creato il file, cosa contiene, gli strumenti utilizzati per creare il file ed eseguire l’importazione e l’errore che state riscontrando.
Una volta raccolte queste informazioni, aprite un ticket con il team di supporto di Kinsta. Tuttavia, ricordate che non possiamo garantirvi che saremo in grado di aiutarvi a far funzionare con successo ogni tipo di importazione.
Passi successivi – workflow di sviluppo locale
Se non è possibile eseguire l’importazione in ambiente Kinsta, il passo successivo sarebbe quello di sviluppare un nuovo workflow per il processo di importazione in cui l’importazione venga eseguita in un ambiente di sviluppo locale. Si noti che in questo processo dovrà essere coinvolto uno sviluppatore per garantire che nessun dato venga perso e che il database del vostro sito non venga danneggiato.
In generale, la procedura consiste nell’impostare una copia del sito in un ambiente di sviluppo locale (si può usare DevKinsta), dove si possono controllare tutti i limiti di timeout. Poi completare l’importazione in quell’ambiente locale. Una volta completata l’importazione, esportate una copia del database WordPress o delle tabelle aggiornate del database dal vostro ambiente locale. Poi create un backup del vostro sito web live, eliminate il database (o le tabelle interessate) dal vostro sito web live e importate il database o le tabelle esportate dal vostro ambiente locale.