Gestire un sito WordPress in modo fluido ed efficiente implica la comprensione di elementi tecnici, come i limiti di memoria PHP e i PHP worker. Ma cosa significano esattamente questi termini e come influiscono sulle prestazioni di un sito WordPress?

Pensiamo a un sito WordPress come a una caffetteria in piena attività. Il limite di memoria PHP è come lo spazio di archiviazione per i chicchi di caffè, il latte e altri ingredienti. Se lo spazio di memoria è troppo piccolo, i baristi (processi PHP) faranno fatica a preparare bevande in modo efficiente perché continueranno a esaurire le scorte. D’altra parte, i PHP worker sono come i baristi di uno staff. Un maggior numero di baristi significa che è possibile preparare più bevande contemporaneamente, riducendo i tempi di attesa dei clienti.

Questo articolo spiega come funzionano il limite di memoria di PHP e i PHP worker, quando regolarli per ottenere prestazioni ottimali e come farlo sui server di Kinsta.

Cos’è il limite di memoria PHP?

Ogni volta che un sito carica una pagina, attiva un plugin o utilizza una funzione del tema, vengono eseguiti degli script PHP che hanno bisogno di memoria per funzionare correttamente. Il limite di memoria PHP determina la quantità di memoria a cui il sito WordPress ha accesso.

Il limite di memoria PHP deve essere sufficientemente alto da permettere al sito di gestire tutte le sue attività senza incorrere in problemi quali:

  • Caricamento lento delle pagine: una memoria insufficiente può rallentare l’esecuzione degli script PHP, con conseguenti tempi di caricamento delle pagine più lunghi.
  • Errori dei plugin: i plugin che richiedono molte risorse potrebbero non funzionare correttamente se non hanno abbastanza memoria.
  • Schermata bianca della morte: quando uno script PHP esaurisce la memoria, il sito potrebbe visualizzare una schermata bianca invece di caricarsi correttamente.

Cosa sono i PHP worker?

I PHP worker sono un altro componente fondamentale che influisce sulle prestazioni di un sito WordPress. I worker sono processi in background su un server che gestiscono l’esecuzione del codice PHP che alimenta il sito.

In WordPress, questi worker sono responsabili della creazione di pagine, dell’elaborazione di attività pianificate e altro ancora. Inoltre, generano le pagine HTML per servire i visitatori del sito e determinano il numero di richieste simultanee non memorizzate nella cache che il sito può gestire in qualsiasi momento.

Quando un visitatore accede a un sito WordPress, viene inviata una richiesta al server, che viene poi elaborata da un PHP Worker. Se il sito ha più PHP Worker, possono essere elaborate più richieste contemporaneamente. Ad esempio, se il sito ha due PHP Worker e arrivano cinque richieste contemporaneamente, due verranno elaborate immediatamente, mentre le altre tre aspetteranno in coda fino al completamento delle prime due.

Questo sistema di accodamento aiuta a gestire il traffico, ma significa anche che un numero insufficiente di PHP Worker può causare ritardi e tempi di risposta più lenti quando vengono effettuate più richieste contemporaneamente.

Gestione dei limiti di memoria PHP

Il limite di memoria PHP predefinito di Kinsta è di 256 MB, che è più che sufficiente per la maggior parte dei plugin e dei siti WordPress.

È importante sapere che se si imposta un limite troppo alto, uno script mal configurato o non funzionante può causare seri problemi quando utilizza troppa memoria.

Quando aumentare il limite di memoria PHP

Aumentare il limite di memoria PHP può essere essenziale per mantenere le prestazioni e la stabilità di un sito WordPress quando si tratta di attività che richiedono molte risorse.

I segnali più comuni che indicano che il limite di memoria PHP deve essere aumentato sono i messaggi di errore del tipo “La dimensione della memoria consentita è esaurita”. Questo indica che il limite di memoria attuale è insufficiente per l’esecuzione delle attività.

Ecco un esempio di come può apparire il messaggio di errore:

PHP Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 20480 bytes)

Questo messaggio significa che lo script PHP ha tentato di allocare una quantità di memoria superiore ai 256 MB (268.435.456 byte) consentiti, causando un errore di esaurimento della memoria. Lo script ha cercato di allocare altri 20KB (20.480 byte) ma ha esaurito la memoria.

Se il sito è ospitato su Kinsta, questi errori di esaurimento della memoria vengono registrati automaticamente. Potete verificare la presenza di questi errori nella dashboard di MyKinsta. Accedete al sito e selezionate la scheda Log.

Il log degli errori di MyKinsta di un sito WordPress
Il log degli errori di MyKinsta di un sito WordPress.

Cercate le voci che includono “PHP Fatal error” e “Allowed memory size exhausted”. Questi log indicheranno l’esatto limite di memoria superato e la memoria aggiuntiva che lo script ha tentato di allocare.

Monitorando questi log, potrete capire se il sito supera spesso il limite di memoria PHP e decidere se aumentare la memoria allocata per garantire un’esecuzione fluida dello script.

Come aumentare il limite di memoria PHP di un sito

Quando è necessario aumentare il limite di memoria PHP di un sito, i clienti Kinsta possono acquistare un add-on per il limite di memoria PHP.

Questo componente aggiuntivo aumenta il limite di memoria da 256MB a 512MB al prezzo di $50 per sito al mese.

Per acquistare questo componente aggiuntivo, contattate il team di Account Management tramite la live chat nella dashboard di MyKinsta o scriveteci un’e-mail a [email protected].

Gestione dei PHP worker

I PHP worker sono particolarmente importanti per i siti che non memorizzano nella cache molti dei loro contenuti. Più un sito è dinamico, più avrà bisogno di PHP worker. I contenuti in cache non richiedono PHP worker; sono necessari solo quando il sito interroga il database per ottenere o modificare informazioni o quando deve eseguire altri script PHP.

Ciò significa che una cache efficace può ridurre in modo significativo il carico di lavoro degli operatori PHP, servendo i contenuti in cache invece di generarli dinamicamente per ogni richiesta.

Noi di Kinsta diamo priorità alle prestazioni del sito implementando diverse tecnologie per massimizzare le prestazioni di PHP. Offriamo il caching delle pagine a livello di CDN e di server, utilizziamo server premium (macchine virtuali C2 e C3D) dotati delle CPU più veloci di Google Cloud e garantiamo un server MySQL altamente ottimizzato ospitato localmente per ridurre la latenza di rete e migliorare la velocità di recupero ed elaborazione dei dati.

Quando aggiungere altri PHP worker

Il numero di PHP worker necessari dipende da diversi fattori, tra cui la dipendenza da query al database, l’ottimizzazione del codice e il tipo di traffico ricevuto.

Un sito ottimizzato con codice PHP e query al database efficienti elaborerà le richieste rapidamente, liberando PHP worker per la richiesta successiva.

I siti dinamici come i negozi di e-commerce, i forum, i siti di apprendimento e i siti associativi richiedono in genere un maggior numero di PHP worker rispetto ai siti statici e alle brochure. Inoltre, i siti più trafficati hanno bisogno di un maggior numero di PHP worker per gestire l’aumento del traffico.

L’aggiunta di più PHP worker può aiutare a gestire l’aumento del traffico e a ridurre i tempi di attesa per l’elaborazione delle richieste, ma è essenziale bilanciare questo aspetto con le risorse CPU e RAM disponibili. Se il server non dispone di CPU e RAM sufficienti per supportare ulteriori PHP worker, può creare un collo di bottiglia, con conseguenti problemi di prestazioni.

Con Kinsta, è possibile monitorare l’attività dei PHP worker utilizzando lo strumento APM di Kinsta per identificare i problemi di prestazioni e le query lente.

Lo strumento APM di Kinsta in MyKinsta
Lo strumento APM di Kinsta in MyKinsta.

Se il sito raggiunge spesso il limite di PHP worker, potrebbe essere necessario aggiungere altri PHP worker o ottimizzare il codice e le query del sito per migliorare le prestazioni.

Come aggiungere altri PHP worker

Per aggiungere altri PHP worker a un sito, potete aggiornare il piano di hosting o acquistare altri PHP worker. Ecco come fare:

  • Aggiornare il piano di hosting: ogni piano Kinsta ha un numero specifico di PHP worker. L’aggiornamento a un piano di livello superiore aumenta il numero di PHP worker del sito. Ad esempio, passando da un piano starter a un piano business, il numero di PHP worker aumenterà da due a quattro.
  • Piani personalizzati: per i siti con esigenze specifiche, Kinsta offre piani personalizzati in cui è possibile specificare il numero di PHP worker necessari. Questa soluzione è ideale per i siti ad alto traffico o per i siti con contenuti dinamici significativi. Contattate il team vendite di Kinsta per discutere le vostre esigenze e ottenere un preventivo personalizzato.

Aumentando il numero di PHP worker, aiuterete il sito a gestire un maggior numero di richieste simultanee, migliorando le prestazioni e migliorando l’esperienza dell’utente.

Tuttavia, assicuratevi sempre che il server disponga di risorse CPU e RAM sufficienti a supportare i PHP worker aggiuntivi per evitare di creare colli di bottiglia nelle prestazioni.

Le best practice per la gestione delle risorse PHP

Una gestione efficace delle risorse PHP è fondamentale per mantenere le prestazioni e la stabilità di un sito WordPress.

Ecco alcune best practice per ottimizzare l’utilizzo della memoria e dei worker PHP:

  1. Implementare un caching efficiente: l’implementazione di solidi meccanismi di caching può ridurre significativamente il carico sui PHP worker. Servendo contenuti in cache ai visitatori, si riduce al minimo il numero di richieste che devono essere elaborate dai PHP worker, liberandoli per compiti più dinamici.
  2. Ottimizzare il codice e le query: assicuratevi che il codice PHP e le query del database siano ben ottimizzati. Un’esecuzione efficiente del codice e interazioni semplificate con il database riducono i tempi di elaborazione, consentendo ai PHP worker di gestire più richieste in meno tempo.
  3. Aggiornare le versioni di PHP: aggiornate regolarmente le ultime versioni di PHP, che spesso includono miglioramenti delle prestazioni e della sicurezza. Le nuove versioni di PHP sono in genere più veloci ed efficienti.
  4. Monitorare l’utilizzo delle risorse: usate strumenti come APM o Query Monitor di Kinsta per valutare l’utilizzo delle risorse. Il monitoraggio aiuta a identificare i colli di bottiglia e le inefficienze in tempo reale, consentendovi di intraprendere tempestivamente azioni correttive.

Riepilogo

La gestione efficace delle risorse PHP è fondamentale per le prestazioni e la stabilità dei siti WordPress ospitati su Kinsta. In questo articolo abbiamo analizzato i limiti di memoria e i PHP worker, il loro ruolo e come ottimizzarne l’uso.

Per ricevere consigli personalizzati o per aumentare il limite di memoria PHP o i PHP worker, aprite un nuovo ticket o inviate un’email a [email protected].

Joel Olawanle Kinsta

Joel is a Frontend developer working at Kinsta as a Technical Editor. He is a passionate teacher with love for open source and has written over 200 technical articles majorly around JavaScript and it's frameworks.