View a markdown version of this page

Suggerimenti e best practice per le WordPress istanze in Amazon Lightsail - Amazon Lightsail

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Suggerimenti e best practice per le WordPress istanze in Amazon Lightsail

Questa guida raccoglie suggerimenti pratici per mantenere un' WordPress istanza su Amazon Lightsail veloce, stabile e sicura.

Mantieni il tuo sito sicuro e aggiornato

Mantieni aggiornati WordPress temi e plugin

  • Applica tempestivamente gli aggiornamenti di WordPress base, dei temi e dei plugin. Gli aggiornamenti spesso includono correzioni a livello di prestazioni e sicurezza. Per ulteriori informazioni, consulta Proteggi le istanze e i contenitori di Lightsail con la gestione degli aggiornamenti.

  • Rimuovi i plugin e i temi che non usi. I plugin inattivi aggiungono comunque un sovraccarico di manutenzione e una superficie di sicurezza, e i plugin scritti male sono una causa frequente dell'elevato utilizzo della memoria.

  • Prova gli aggiornamenti principali su una copia della tua istanza lanciata con un'istantanea prima di applicarli al tuo sito live.

Esegui il backup prima di apportare modifiche

Prima di modificare i file di configurazione o installare i plugin, scatta un'istantanea della tua istanza in modo da poter ripristinare facilmente l'applicazione dall'istantanea nel caso qualcosa vada storto:

  • Crea un'istantanea manuale dalla console Lightsail oppure

  • Abilita le istantanee automatiche.

Per istruzioni, consulta Eseguire il backup delle istanze di Linux/Unix Lightsail con istantanee e Configurare istantanee automatiche.

Monitoraggio e risoluzione dei problemi

Come faccio a sapere se la mia istanza sta esaurendo la memoria?

I sintomi più comuni includono:

  • Sul tuo sito viene visualizzato il messaggio «Errore nello stabilire una connessione al database» (sia sul sito pubblico che sul pannello di amministrazione). Questo di solito significa che MariaDB si è fermato.

  • Il sito si carica lentamente o scade in caso di traffico modesto.

Per confermare, connettiti alla tua istanza tramite SSH e controlla l'uso corrente della memoria:

free -m

Guarda la available colonna qui sottoMem:. Questa è la quantità di memoria che l'istanza può ancora utilizzare. Se available è inferiore a 50 MB, l'istanza è sottoposta a una forte pressione della memoria ed è a rischio di OOM-killing processi.

Puoi anche verificare se il kernel ha terminato un processo per esaurimento della memoria (un «OOM kill»):

sudo dmesg | grep -i "out of memory"

Se compaiono voci che menzionano mariadbd omysqld, il database viene chiuso a causa della pressione della memoria, e la procedura descritta in Migliorare le prestazioni della memoria dovrebbe esserti utile.

La mia istanza dispone già dell'ottimizzazione automatica della memoria?

Il nuovo modello WordPress Lightsail include un servizio che rileva la dimensione della memoria dell'istanza e applica automaticamente lo swap, MariaDB e le impostazioni descritte in questa guida ogni volta che l'istanza viene Apache/PHP avviata, anche dopo l'avvio o il riavvio. Per verificare se l'istanza ne è dotata, connettiti tramite SSH ed esegui:

systemctl status lightsail-memory-config

Se il servizio esiste, l'istanza gestisce già queste impostazioni automaticamente e non è necessario applicarle manualmente. Se il comando segnala che l'unità non è stata trovata, segui la procedura descritta in Migliorare le prestazioni della memoria.

Ottimizzazione delle prestazioni

Scegli il pacchetto giusto per il tuo carico di lavoro

Il modo più efficace per migliorare WordPress le prestazioni consiste nell'eseguire un bundle di istanze con memoria sufficiente per il carico di lavoro. WordPress di per sé è leggero; tuttavia i plugin, i temi e il database possono consumare una quantità significativa di memoria.

  • 512 MB — 1 GB di RAM (bundle di nano e microistanze Lightsail): adatto per blog di piccole dimensioni e siti a basso traffico con un set minimo di plugin. Queste istanze sono le più soggette a un uso intensivo della memoria e traggono i maggiori vantaggi dalla regolazione riportata di seguito.

  • 2 GB di RAM o superiore: consigliato se utilizzi generatori di pagine (come Elementor o Divi) o molti plugin attivi WooCommerce.

Man mano che il sito cresce e necessita di più risorse, puoi passare a un pacchetto più ampio creando un'istantanea e lanciando una nuova istanza più grande da essa.

Migliora le prestazioni della memoria

Nota

Il nuovo modello WordPress Lightsail applica automaticamente l'ottimizzazione della memoria in base alle dimensioni ogni volta che l'istanza viene avviata, quindi la maggior parte dei passaggi manuali in questa sezione vengono gestiti automaticamente se si crea una nuova istanza Lightsail. WordPress

Se il tuo sito mostra «Errore nello stabilire una connessione al database» quando tu (o i tuoi visitatori) provate a caricare una pagina, o vedi messaggi di registro che indicano che MariaDB è stato interrotto a causa di memoria insufficiente (Out of memory: Killed process ... (mariadbd)come nel registro di sistema), è molto probabile che la tua istanza stia esaurendo la memoria. Su istanze più piccole, il kernel Linux può terminare il processo del database MariaDB (un «OOM kill») quando la memoria è esaurita.

I tre passaggi seguenti riducono la pressione della memoria aggiungendo spazio di swap e limitando la quantità di memoria che il database e il server Web possono utilizzare. Ogni passaggio aiuta da solo, quindi puoi applicare solo quelli che ti servono o tutti e tre per ottenere il massimo effetto. Prima di iniziare, assicurati di avere l'istantanea più recente dell'istanza. Per maggiori dettagli, consulta Backup prima di apportare modifiche.

Importante

Questi passaggi richiedono la connessione all'istanza tramite SSH e l'esecuzione di comandi consudo. Il riavvio del database e del server Web interrompe brevemente il sito (alcuni secondi), pertanto apporta le modifiche durante una finestra di traffico limitato.

Per connetterti alla tua istanza, usa il client SSH basato su browser nella console Lightsail oppure consulta Connetti alla tua istanza Linux o Unix.

Passaggio 1: aggiungi un file di scambio

Un file di swap offre al sistema operativo lo spazio necessario per scaricare la memoria inattiva su disco, il che aiuta a prevenire arresti anomali di memoria esaurita su istanze con meno di circa 1,5 GB di RAM. Consigliamo di aggiungere lo swap su pacchetti nano o micro, e di solito non è necessario su quelli più grandi.

Innanzitutto, controlla se lo swap è già attivo:

cat /proc/swaps

Se l'unica riga stampata è l'intestazione (non sono elencate voci di swap), non viene configurato alcun swap:

Filename Type Size Used Priority

Crea un file di swap da 650 MB:

sudo dd if=/dev/zero of=/mnt/.lightsail.swap bs=1K count=665600 status=progress sudo chmod 600 /mnt/.lightsail.swap sudo mkswap /mnt/.lightsail.swap sudo swapon /mnt/.lightsail.swap

Per far sì che il file di swap persista anche dopo i riavvii, aggiungilo a: /etc/fstab

echo '/mnt/.lightsail.swap none swap sw 0 0' | sudo tee -a /etc/fstab

Conferma che lo swap è ora attivo:

cat /proc/swaps

Il file di scambio ora appare nell'output:

Filename Type Size Used Priority /mnt/.lightsail.swap file 665596 0 -2

Passaggio 2: Ottimizza il database MariaDB

innodb_buffer_pool_sizeè il più grande consumatore di memoria singola in MariadB. Se la dimensione predefinita del pool è troppo grande rispetto alla memoria dell'istanza, può contribuire a blocchi di memoria esaurita.

Trova quella consigliata innodb_buffer_pool_size per la tua istanza nella tabella di configurazione consigliata, quindi crea un file di configurazione dedicato con quel valore (sostituiscilo 16M nell'esempio con il tuo valore):

sudo tee /etc/mysql/mariadb.conf.d/90-lightsail-memory.cnf > /dev/null <<'EOF' [mysqld] innodb_buffer_pool_size = 16M EOF

Per eseguire la modifica, esegui il seguente comando che riavvia il database:

sudo systemctl restart mariadb

Passaggio 3: Ottimizzazione di Apache e PHP

Apache è il server web che gestisce le richieste in arrivo sul tuo sito. WordPress Per impostazione predefinita, consente fino a 150 processi di lavoro simultanei (). MaxRequestWorkers Su una piccola istanza, ogni worker PHP può utilizzare decine di megabyte, il che può esaurire la memoria sotto carico. Per limitare il numero di worker adatti alla tua istanza e stabilire la quantità di memoria che può utilizzare una singola richiesta PHP, imposta i mpm_prefork limiti di Apache (i valori mostrati si riferiscono a una microistanza; controlla la tabella di configurazione consigliata per la tua istanza):

sudo tee /etc/apache2/mods-available/mpm_prefork.conf > /dev/null <<'EOF' <IfModule mpm_prefork_module> StartServers 1 MinSpareServers 1 MaxSpareServers 3 MaxRequestWorkers 5 MaxConnectionsPerChild 5000 </IfModule> EOF

Imposta il PHP memory_limit (512 MB è un limite massimo sicuro per tutte le dimensioni). Per prima cosa rileva la tua versione di PHP, poi scrivi il file di configurazione:

PHP_VERSION=$(php -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;') sudo mkdir -p /etc/php/${PHP_VERSION}/apache2/conf.d sudo tee /etc/php/${PHP_VERSION}/apache2/conf.d/90-lightsail-memory.ini > /dev/null <<'EOF' memory_limit = 512M EOF

Applica entrambe le modifiche riavviando Apache:

sudo systemctl restart apache2

Utilizza i valori seguenti in base alla RAM totale dell'istanza. Per controllare la memoria dell'istanza, esegui free -m e consulta la total colonna oppure fai riferimento alla dimensione del tuo pacchetto nella console Lightsail.

Usa la memorizzazione nella cache per ridurre il carico

La memorizzazione nella cache riduce la frequenza con cui WordPress è necessario interrogare il database ed eseguire PHP, il che riduce l'utilizzo della CPU e della memoria:

  • Memorizzazione nella cache delle pagine: installa un plug-in di memorizzazione nella cache come W3 Total Cache o WP Super Cache per fornire copie statiche delle tue pagine.

  • Memorizzazione nella cache degli oggetti: se il sito ha molti utenti connessi WooCommerce, esegue o utilizza contenuti dinamici che cambiano spesso (come forum o aree di iscrizione), un plug-in per la cache degli oggetti (come Redis Object Cache o APCu-based cache) archivia in memoria i risultati delle query utilizzate di frequente e riduce le ricerche ripetute nel database.

  • Una rete per la distribuzione di contenuti (CDN): trasferite le risorse statiche (immagini, CSS JavaScript) su un CDN come Lightsail Distribution in modo che non vengano servite dalla vostra istanza.