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
Per un POS reattivo in produzione, consigliamo almeno:
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
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
Un errore 503 Service Unavailable non è un bug di POS — significa che il server non è riuscito a gestire la richiesta. Controlla:
- Carico del server e risorse disponibili
- Worker PHP (potrebbero essere esauriti)
- Limite di memoria PHP — aumentare a 256 MB o più
- 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
Un aggiornamento di WooCommerce può occasionalmente compromettere il funzionamento del POS. Aggiornare sempre WooCommerce prima su un sito di staging 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.
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
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.
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
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
I valori del carico del server possono essere fuorvianti e devono essere interpretati con attenzione:
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
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
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
Passaggio 1: monitorare i registri
- Aprire Registri dal menu di navigazione
- Eseguire l'operazione lenta (sincronizzazione dei prodotti, creazione di un ordine, ecc.)
- Cercare la voce di registro corrispondente
- Espandere il contesto per visualizzare le metriche
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
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
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
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:
- Test in staging - Disattivare tutti i plugin tranne WooCommerce e WCPOS
- Misurare il riferimento di base - Registrare i tempi di esecuzione con il numero minimo di plugin
- Attivare gradualmente - Aggiungere i plugin uno alla volta per identificare i responsabili
- 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
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
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:
- Andare in
WooCommerce > Impostazioni > Advanced > Features - Abilitare "Archiviazione ordini ad alte prestazioni"
- Seguire la procedura di migrazione
Ulteriori informazioni:
Best practice per il monitoraggio del server
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
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à
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
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
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
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 per l'elenco completo e le soluzioni.
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 65536inhttpd.conf - Nginx:
large_client_header_buffers 4 65536;innginx.conf - Se non si dispone dell'accesso alla configurazione, chiedere al provider di hosting di modificarla.
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