# Prestazioni del server

Le prestazioni del server incidono direttamente sulla velocità e sulla reattività dell'applicazione WCPOS. Il POS effettua molte chiamate REST API, quindi **il tempo di risposta del server è il collo di bottiglia principale**: la velocità del POS dipende in larga misura dalla qualità dell'hosting. Questa guida aiuta a monitorare, diagnosticare e ottimizzare le prestazioni del server usando le metriche integrate e le tecniche di risoluzione dei problemi.

## Requisiti minimi del server[​](#minimum-server-requirements "Collegamento diretto a Requisiti minimi del server")

Per un POS reattivo in produzione, consigliamo almeno:

CPU

<!-- -->

: 4+ core CPU

RAM

<!-- -->

: 4 GB o più

PHP

<!-- -->

: PHP 7.4+ (8.x consigliato)

Database

<!-- -->

: MySQL 8.0+ o MariaDB 11.x

Archiviazione

<!-- -->

: SSD o NVMe

SSL

<!-- -->

: HTTPS è obbligatorio — l'API REST di WooCommerce non funzionerà senza HTTPS

L'hosting condiviso spesso non basta

L'hosting condiviso spesso offre troppo pochi worker PHP e troppo poca memoria per i carichi di lavoro POS, che effettuano molte chiamate API simultanee. Per l'uso POS in produzione, è fortemente consigliato un **VPS o un hosting WordPress gestito**. È noto inoltre che l'hosting gestito `WordPress.com` presenta problemi di compatibilità con l'API REST (alcuni utenti vedono solo 9–10 prodotti da cataloghi di grandi dimensioni) — per la piena compatibilità è consigliato `WordPress.org` in hosting autonomo.

### Stack di ottimizzazione validato dalla community[​](#community-validated-optimisation-stack "Collegamento diretto a Stack di ottimizzazione validato dalla community")

Gli utenti segnalano le migliori prestazioni POS con questa combinazione:

* **MariaDB 11.4** (più veloce di MySQL per i carichi di lavoro WooCommerce)
* **HPOS abilitato** (vedi sotto)
* cache degli oggetti **LiteSpeed o Redis**
* archiviazione **NVMe**
* **PHP OPcache** abilitato

## Errori 503[​](#503-errors "Collegamento diretto a Errori 503")

Gli errori 503 sono sempre lato server

Un errore `503 Service Unavailable` **non è un bug di POS** — significa che il server non è riuscito a gestire la richiesta. Controlla:

1. Carico del server e risorse disponibili
2. Worker PHP (potrebbero essere esauriti)
3. Limite di memoria PHP — aumentare a **256 MB o più**
4. Log del server del provider di hosting (contatta il provider; può vedere ciò che l'applicazione non può vedere)

## Compatibilità con la versione di WooCommerce[​](#woocommerce-version-compatibility "Collegamento diretto a Compatibilità con la versione di WooCommerce")

Un aggiornamento di WooCommerce può occasionalmente compromettere il funzionamento del POS. Aggiornare sempre WooCommerce prima su un [sito di staging](/it/support/troubleshooting/plugin-conflicts.md#before-you-start-use-a-staging-site) e mantenere WCPOS aggiornato, così da includere le correzioni di compatibilità più recenti.

Problemi noti:

* **WooCommerce 10.5.0** — ha interrotto il caricamento dei prodotti nel POS (sintomo: vengono mostrati solo \~10 prodotti; la scansione dei codici a barre e la ricerca smettono di funzionare) e ha introdotto una cache dei prodotti sperimentale che può causare **rigonfiamento dei postmeta** ed esaurimento della memoria. **Correzione:** aggiornare WCPOS all'ultima versione (include la correzione e una migrazione di pulizia), oppure ripristinare WooCommerce alla versione [10.4.3](https://downloads.wordpress.org/plugin/woocommerce.10.4.3.zip).

Se un aggiornamento di WooCommerce compromette il funzionamento del POS, ripristinare WooCommerce alla versione precedente (tramite la scheda **Avanzate** nella pagina WordPress.org del plugin) e segnalarlo.

## Comprendere le metriche del server[​](#understanding-server-metrics "Collegamento diretto a Comprendere le metriche del server")

WCPOS raccoglie automaticamente le metriche delle prestazioni del server a ogni operazione di recupero dei dati (prodotti, ordini, clienti, ecc.). È possibile visualizzare queste metriche nella schermata [Log](/it/support/logs.md).

### Metriche tipiche del server[​](#typical-server-metrics "Collegamento diretto a Metriche tipiche del server")

```
{

  "total": "24692",

  "execution_time": "76.64 ms",

  "server_load": "[15.20605469,16.16357422,16.76806641]"

}
```

**Dettaglio:**

* **`total`** - Numero di record elaborati (24.692 ID prodotto)
* **`execution_time`** - Tempo impiegato per completare l'operazione (76,64 millisecondi)
* **`server_load`** - Medie del carico del server per 1, 5 e 15 minuti

## Spiegazione del carico del server[​](#server-load-explained "Collegamento diretto a Spiegazione del carico del server")

Il carico del server rappresenta il carico medio del sistema su diversi intervalli di tempo:

* **Primo valore** - media a 1 minuto (15.21)
* **Secondo valore** - media a 5 minuti (16.16)
* **Terzo valore** - media a 15 minuti (16.77)

### Interpretazione del carico[​](#load-interpretation "Collegamento diretto a Interpretazione del carico")

I valori del carico del server possono essere fuorvianti e devono essere interpretati con attenzione:

I valori del carico possono essere fuorvianti

Le medie del carico del server non sono sempre direttamente correlate alle prestazioni. Un server con valori di carico elevati (15+) può comunque essere molto reattivo se dispone di risorse sufficienti ed è ben ottimizzato. **Concentrarsi sui tempi di esecuzione anziché solo sui valori del carico.**

**Linee guida generali:**

* **Carico relativo ai core della CPU** - Un carico di 8.0 su un server a 8 core indica il pieno utilizzo
* **Carico prolungato vs temporaneo** - I picchi brevi sono normali; un carico elevato prolungato può indicare problemi
* **Le prestazioni contano di più** - Un server reattivo con carico elevato è preferibile a un server lento con carico basso

**Aspetti da monitorare:**

* **Tempi di esecuzione in aumento** nel tempo
* **Carico in crescita costante** senza spiegazione
* **Carico elevato E tempi di esecuzione lenti** insieme

## Parametri di riferimento delle prestazioni[​](#performance-benchmarks "Collegamento diretto a Parametri di riferimento delle prestazioni")

### Linee guida sui tempi di esecuzione[​](#execution-time-guidelines "Collegamento diretto a Linee guida sui tempi di esecuzione")

| Operazione                 | Buono   | Accettabile | Scarso   | Critico |
| -------------------------- | ------- | ----------- | -------- | ------- |
| **Recupero dei prodotti**  | < 100ms | 100-500ms   | 500ms-2s | > 2s    |
| **Creazione degli ordini** | < 200ms | 200-800ms   | 800ms-3s | > 3s    |

### Considerazioni sul numero di record[​](#record-count-considerations "Collegamento diretto a Considerazioni sul numero di record")

Il tempo di esecuzione dovrebbe aumentare in modo ragionevole in base al numero di record:

```
// Good scaling examples

{"total": "100", "execution_time": "15.2 ms"}    // 0.15ms per record

{"total": "1000", "execution_time": "89.4 ms"}   // 0.09ms per record

{"total": "10000", "execution_time": "234.1 ms"} // 0.02ms per record



// Poor scaling examples

{"total": "100", "execution_time": "500.0 ms"}   // 5.0ms per record

{"total": "1000", "execution_time": "8000.0 ms"} // 8.0ms per record
```

## Diagnosi dei problemi di prestazioni[​](#diagnosing-performance-issues "Collegamento diretto a Diagnosi dei problemi di prestazioni")

### Passaggio 1: monitorare i registri[​](#step-1-monitor-the-logs "Collegamento diretto a Passaggio 1: monitorare i registri")

1. Aprire **Registri** dal menu di navigazione
2. Eseguire l'operazione lenta (sincronizzazione dei prodotti, creazione di un ordine, ecc.)
3. Cercare la voce di registro corrispondente
4. Espandere il contesto per visualizzare le metriche

### Passaggio 2: analizzare le metriche[​](#step-2-analyse-the-metrics "Collegamento diretto a Passaggio 2: analizzare le metriche")

**Tempo di esecuzione elevato + carico del server elevato = problema di risorse del server**

```
{

  "total": "5000",

  "execution_time": "3500.0 ms",

  "server_load": "[12.45, 11.23, 10.87]"

}
```

*Soluzione: aumentare le risorse del server o ottimizzare la configurazione del server*

**Tempo di esecuzione elevato + carico del server normale = problema di plugin/database**

```
{

  "total": "1000",

  "execution_time": "2800.0 ms",

  "server_load": "[1.23, 1.45, 1.67]"

}
```

*Soluzione: identificare i plugin lenti o ottimizzare le query del database*

**Tempo di esecuzione normale + carico del server elevato = sovraccarico generale del server**

```
{

  "total": "2000",

  "execution_time": "150.0 ms",

  "server_load": "[8.90, 9.12, 8.45]"

}
```

*Soluzione: ridurre il carico del server causato da altri processi o potenziare le risorse*

## Problemi di prestazioni comuni[​](#common-performance-problems "Collegamento diretto a Problemi di prestazioni comuni")

### 1. Risorse del server insufficienti[​](#1-insufficient-server-resources "Collegamento diretto a 1. Risorse del server insufficienti")

**Sintomi:**

* Carico del server costantemente elevato (> 4.0 sulla maggior parte dei server)
* Tempi di esecuzione lunghi in tutte le operazioni
* Timeout frequenti

**Soluzioni:**

* **Aggiornare la CPU** - Più core gestiscono meglio le richieste simultanee
* **Aumentare la RAM** - Riduce l'I/O su disco e migliora la cache
* **Usare l'archiviazione SSD** - Migliora drasticamente le prestazioni del database
* **Ottimizza le impostazioni PHP** - Aumenta memory\_limit, max\_execution\_time

### 2. Query del database lente[​](#2-slow-database-queries "Collegamento diretto a 2. Query del database lente")

**Sintomi:**

* Tempi di esecuzione elevati con carico del server normale
* Recupero di prodotti/ordini particolarmente lento
* Codici di errore relativi al database nei log

**Soluzioni:**

* **Abilita WooCommerce HPOS** - Il miglioramento più significativo per le prestazioni del database
* **Usa la cache degli oggetti** - Redis o Memcached, se disponibili dal provider di hosting
* **Mantieni WordPress aggiornato** - Gli aggiornamenti del core includono spesso ottimizzazioni del database
* **Limita le revisioni degli articoli** - Aggiungi `define('WP_POST_REVISIONS', 3);` a wp-config.php

### 3. Interferenze dei plugin[​](#3-plugin-interference "Collegamento diretto a 3. Interferenze dei plugin")

**Sintomi:**

* Calo improvviso delle prestazioni dopo gli aggiornamenti dei plugin
* Operazioni specifiche molto più lente di altre
* Tempi di esecuzione elevati con carico del server normale

**Risoluzione dei problemi:**

1. **Test in staging** - Disattivare tutti i plugin tranne WooCommerce e WCPOS
2. **Misurare il riferimento di base** - Registrare i tempi di esecuzione con il numero minimo di plugin
3. **Attivare gradualmente** - Aggiungere i plugin uno alla volta per identificare i responsabili
4. **Controllare gli hook dei plugin** - Cercare plugin che si agganciano alle azioni di WooCommerce

**Plugin problematici comuni:**

* Plugin SEO pesanti durante le operazioni sui prodotti
* Sistemi complessi di gestione dell'inventario
* Plugin di analisi/tracciamento in tempo reale
* Plugin personalizzati sviluppati male

### 4. Configurazione WordPress/WooCommerce[​](#4-wordpresswoocommerce-configuration "Collegamento diretto a 4. Configurazione WordPress/WooCommerce")

**Sintomi:**

* Prestazioni non costanti
* Errori relativi alla memoria nei log
* Bacheca di amministrazione lenta

**Lista di controllo per l'ottimizzazione:**

* **Versione PHP** - Utilizzare PHP 8.0+ per prestazioni migliori
* **WooCommerce HPOS** - Abilitare l'archiviazione degli ordini ad alte prestazioni (vedere sotto)
* **Cache di WordPress** - Abilitare la cache degli oggetti, se disponibile
* **Impostazioni WooCommerce** - Ottimizzare le dimensioni delle immagini dei prodotti

### Archiviazione ordini ad alte prestazioni (HPOS) di WooCommerce[​](#woocommerce-high-performance-order-storage-hpos "Collegamento diretto a Archiviazione ordini ad alte prestazioni (HPOS) di WooCommerce")

Il principale miglioramento delle prestazioni

**HPOS è uno dei miglioramenti delle prestazioni più significativi che si possano apportare a WooCommerce.** Archivia gli ordini in tabelle di database personalizzate invece che nella tabella dei post di WordPress, migliorando drasticamente le prestazioni per i negozi con molti ordini.

**Vantaggi:**

* **Query degli ordini più rapide** - Ordini archiviati in una struttura di database ottimizzata
* **Carico del database ridotto** - Separa gli ordini da post/pagine
* **Migliore scalabilità** - Gestisce grandi quantità di ordini in modo efficiente
* **Prestazioni di amministrazione migliorate** - Schermate di gestione degli ordini più rapide

**Come abilitarlo:**

1. Andare in `WooCommerce > Impostazioni > Advanced > Features`
2. Abilitare "Archiviazione ordini ad alte prestazioni"
3. Seguire la procedura di migrazione

**Ulteriori informazioni:**

* [Documentazione HPOS di WooCommerce](https://woocommerce.com/document/high-performance-order-storage/)
* [Guida alla migrazione HPOS](https://woocommerce.com/document/high-performance-order-storage/#section-3)

## Best practice per il monitoraggio del server[​](#server-monitoring-best-practices "Collegamento diretto a Best practice per il monitoraggio del server")

### 1. Controlli regolari delle prestazioni[​](#1-regular-performance-checks "Collegamento diretto a 1. Controlli regolari delle prestazioni")

* **Revisioni settimanali** - Controllare i log per individuare tendenze nelle prestazioni
* **Misurazioni di riferimento** - Registrare i tempi di esecuzione normali
* **Monitoraggio nelle ore di punta** - Monitorare durante i periodi di traffico elevato

### 2. Configurare gli avvisi sulle prestazioni[​](#2-set-performance-alerts "Collegamento diretto a 2. Configurare gli avvisi sulle prestazioni")

Monitorare questi segnali di avvertimento:

* Tempi di esecuzione > 1000ms in modo costante
* Carico del server > 5.0 per periodi prolungati
* Errori di timeout frequenti nei log

### 3. Pianificazione della capacità[​](#3-capacity-planning "Collegamento diretto a 3. Pianificazione della capacità")

Monitorare le tendenze di crescita:

* **Crescita del numero di record** - Prodotti, ordini, clienti
* **Degrado delle prestazioni** - Come varia il tempo di esecuzione
* **Utilizzo delle risorse** - CPU, memoria, utilizzo del disco

## Strategie di ottimizzazione del server[​](#server-optimisation-strategies "Collegamento diretto a Strategie di ottimizzazione del server")

### 1. Procedure consigliate per WordPress/WooCommerce[​](#1-wordpresswoocommerce-best-practices "Collegamento diretto a 1. Procedure consigliate per WordPress/WooCommerce")

**Abilitare HPOS:**

* Il miglioramento delle prestazioni più incisivo per WooCommerce
* Consultare la sezione HPOS precedente per i dettagli

**Configurazione PHP (consultare il proprio provider di hosting):**

```
memory_limit = 512M

max_execution_time = 300

max_input_vars = 3000
```

**Configurazione WordPress:**

```
// In wp-config.php - limit post revisions

define('WP_POST_REVISIONS', 3);



// Enable WordPress debug logging if needed

define('WP_DEBUG_LOG', true);
```

### 2. Ottimizzazioni a livello di hosting[​](#2-hosting-level-optimizations "Collegamento diretto a 2. Ottimizzazioni a livello di hosting")

**Cache degli oggetti:**

* Chiedere al proprio provider di hosting la disponibilità di Redis o Memcached
* Molti provider di hosting WordPress gestito offrono questa funzionalità automaticamente

**Versione PHP:**

* Utilizzare PHP 8.0+ per migliorare sensibilmente le prestazioni
* La maggior parte dei provider di hosting consente di cambiare facilmente versione PHP

**Risorse del server:**

* Assicurarsi di disporre di RAM adeguata (minimo 1GB, preferibilmente 2GB+)
* L'archiviazione SSD offre prestazioni del database nettamente migliori rispetto ai dischi tradizionali

## Note specifiche per host e servizi[​](#hosting-specific-notes "Collegamento diretto a Note specifiche per host e servizi")

Alcuni host e CDN richiedono una configurazione per consentire al POS di raggiungere l'API REST di WooCommerce:

| Host / servizio           | Problema                                                                                                     | Soluzione                                                                                                  |
| ------------------------- | ------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------- |
| **Hosting GoDaddy**       | Il firewall del sito web blocca le chiamate API REST a `/wp-json/` (errori come *"Received 'undefined'"*)    | `Website Security > Firewall > Impostazioni > Access Control > Allow URL Paths` → aggiungi `/wp-json/`     |
| **Hosting WP Engine**     | L'API REST deve essere abilitata esplicitamente                                                              | Abilita l'API REST; inserisci gli endpoint API nella whitelist del firewall, se necessario                 |
| **Servizio Cloudflare**   | Può bloccare le richieste API REST e memorizzare nella cache le risposte API                                 | Controlla le regole del firewall; aggiungi una regola di pagina per **ignorare la cache** per `/wp-json/*` |
| **Hosting WordPress.com** | Problemi di compatibilità con l'API REST / il caricamento dei prodotti (vengono mostrati solo 9–10 prodotti) | Usa WordPress.org in hosting autonomo per la piena compatibilità                                           |
| **Hosting condiviso**     | Troppi pochi worker PHP / memoria insufficiente per chiamate POS simultanee                                  | Passa a un VPS o a un host WordPress gestito                                                               |

I plugin di sicurezza (Wordfence, ecc.) possono bloccare l'API REST in modi simili — consulta [Conflitti tra plugin](/it/support/troubleshooting/plugin-conflicts.md) per l'elenco completo e le soluzioni.

### HTTP 414 — URI troppo lungo[​](#http-414-uri-too-long "Collegamento diretto a HTTP 414 — URI troppo lungo")

Carrelli di grandi dimensioni, o il token di accesso incluso nell'URL di checkout, possono superare il limite di lunghezza degli URL del server (la richiesta di checkout usa `GET`). Il problema può dipendere dal browser ed essere aggravato dalla cache del browser.

**Soluzione alternativa:** svuota prima la cache del browser, quindi aumenta il limite di lunghezza degli URL del server:

* **Apache:** `LimitRequestLine 65536` in `httpd.conf`
* **Nginx:** `large_client_header_buffers 4 65536;` in `nginx.conf`
* Se non si dispone dell'accesso alla configurazione, chiedere al provider di hosting di modificarla.

## Quando richiedere assistenza[​](#when-to-seek-help "Collegamento diretto a Quando richiedere assistenza")

Contattare il provider di hosting o uno sviluppatore WordPress se:

* **Carico del server costantemente > 8.0** nonostante gli interventi di ottimizzazione
* **Tempi di esecuzione > 5000ms** per operazioni semplici
* **Errori di memoria** visualizzati frequentemente nei log
* **Query del database che richiedono costantemente > 2 secondi**

Fornire loro:

* Metriche del server dai log
* Elenco dei plugin attivi
* Specifiche del server (CPU, RAM, tipo di archiviazione)
* Versioni di WordPress e WooCommerce

## Documentazione correlata[​](#related-documentation "Collegamento diretto a Documentazione correlata")

[LogCome accedere alle metriche del server e interpretarle](/it/support/logs.md)

[Prestazioni del checkoutOttimizzare l'elaborazione dei pagamenti](/it/support/performance/checkout.md)

[Codici di erroreComprendere i codici di errore relativi alle prestazioni](/it/error-codes/.md)

[Risoluzione dei problemiGuide generali alla risoluzione dei problemi](/it/category/troubleshooting.md)
