

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
<a name="amazon-lightsail-wordpress-tips-best-practices"></a>

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

## Mantieni il tuo sito sicuro e aggiornato
<a name="wordpress-keep-secure-and-updated"></a>

### Mantieni aggiornati WordPress temi e plugin
<a name="wordpress-keep-updated"></a>
+ 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](amazon-lightsail-update-management.md) 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
<a name="wordpress-back-up-before-changes"></a>

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](lightsail-how-to-create-a-snapshot-of-your-instance.md).](amazon-lightsail-configuring-automatic-snapshots.md)

## Monitoraggio e risoluzione dei problemi
<a name="wordpress-monitoring-and-troubleshooting"></a>

### Come faccio a sapere se la mia istanza sta esaurendo la memoria?
<a name="wordpress-detect-out-of-memory"></a>

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 sotto`Mem:`. 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` o`mysqld`, il database viene chiuso a causa della pressione della memoria, e la procedura descritta in [Migliorare le prestazioni della memoria](#wordpress-improve-memory-performance) dovrebbe esserti utile.

### La mia istanza dispone già dell'ottimizzazione automatica della memoria?
<a name="wordpress-automatic-memory-tuning"></a>

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](#wordpress-improve-memory-performance).

## Ottimizzazione delle prestazioni
<a name="wordpress-optimize-performance"></a>

### Scegli il pacchetto giusto per il tuo carico di lavoro
<a name="wordpress-choose-bundle"></a>

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](how-to-create-larger-instance-from-snapshot-using-console.md) nuova istanza più grande da essa.

### Migliora le prestazioni della memoria
<a name="wordpress-improve-memory-performance"></a>

**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](#wordpress-back-up-before-changes).

**Importante**  
Questi passaggi richiedono la connessione all'istanza tramite SSH e l'esecuzione di comandi con`sudo`. 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](lightsail-how-to-connect-to-your-instance-virtual-private-server.md) alla tua istanza Linux o Unix.

#### Passaggio 1: aggiungi un file di scambio
<a name="wordpress-add-swap-file"></a>

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
<a name="wordpress-tune-mariadb"></a>

`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](#wordpress-recommended-memory-values), 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
<a name="wordpress-tune-apache-php"></a>

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](#wordpress-recommended-memory-values) 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
```

#### Valori consigliati per memoria di istanza
<a name="wordpress-recommended-memory-values"></a>

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.


**Configurazione della memoria consigliata per istanza (RAM)**  

|  Memoria di istanza (RAM)  |  MariaDB `innodb_buffer_pool_size`  |  Apache `MaxRequestWorkers`  |  PHP `memory_limit`  |  File di scambio  | 
| --- | --- | --- | --- | --- | 
| Fino a \~1,5 GB | 16 M | 5 | 512 M | Sì (650 MB) | 
| \~1,5—3 GB | 256 M | 10 | 512 M | No | 
| \~3—6 GB | 256 M | 25 | 512 M | No | 
| \~6-13 GB | 2048 M | 50 | 512 M | No | 
| \~ 13-26 GB | 2048 M | 125 | 512 M | No | 
| Più di \~26 GB | 4096 M | 250 | 512 M | No | 

### Usa la memorizzazione nella cache per ridurre il carico
<a name="wordpress-use-caching"></a>

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](https://wordpress.org/plugins/redis-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](amazon-lightsail-creating-content-delivery-network-distribution.md) in modo che non vengano servite dalla vostra istanza.