I classici problemi che si riscontrano in questi casi sono i soliti di sempre: un errore 508, ad esempio, che rappresenta il fatto che il server non riesce a servire le numerose richieste dello script, e da quello che ho visto ciò coincide spesso con il superamente del limite del numero di processi contemporanei (20 o massimo 25, su alcuni hosting condivisi). Bisogna anzitutto saper distinguere se l’overload sia effettivo, se avvenga saltuariamente o periodicamente, se riguardi soprattutto problemi di spazio oppure problemi di esecuzione nel tempo.
Nel primo caso, infatti, i problemi di spazio si risolvono facilmente, in molti casi: potrebbero dipendere da un log male impostato, ad esempio, che basta cancellare o disabilitare, da plugin di backup che operano sullo stesso server, o (ancora) dalla dimensione di un file di archivio o di database che è cresciuta troppo rispetto ai limiti concessi dall’hosting. Nel secondo caso, invece, ci vuole quasi sempre un’analisi più approfondita della situazione.
Questo numero non può essere modificato dall’utente, a meno di avere un hosting superiore come un VPS o un dedicato, per cui bisognerà – viceversa – adattare il nostro script alla situazione cercando di ridurre al massimo le esecuzioni contemporanee.
Quali sono le principali cause dei sovraccarichi è presto detto: di solito questo limite viene violato dai cron job (inclusi i wp-cron di WordPress, gli auto-update troppo frequenti oppure i plugin che operino su tutte le pagine indistintamente, tra cui alcuni per la SEO) oppure da applicazioni come le email che usino IMAP, ad esempio.
Una strategia basilare per ottimizzare l’uso di RAM e CPU consiste nel randomizzare l’esecuzione degli script e serve, ad esempio, a fare in modo di eseguirli solo in una percentuale (piuttosto alta) di casi. Se abbiamo impostato un cron job, ad esempio, che deve essere lanciato 100 volte all’ora, potremmo pensare di ridurre questo numero a 80 senza che “nessuno se ne accorga”.
Questo non vale nella totalità dei casi, ovviamente (ci sono casi reali in cui questo approccio NON è applicabile), ma solo se si tratta di operazioni singole ed “atomiche” – nel senso che siano separabili, ed ammesso che il contesto generale lo permetta, possiamo pensare di farlo eseguire casualmente 70 volte all’ora (ad esempio) piuttosto che 100: questo, sul medio-lungo periodo, finirà per alleggerire il carico sul server. Caso pratico: uno script che aggiorna le quotazioni in borsa, che potrebbe funzionare in modo equivalente per l’utente medio funzionando a frequenze di lavoro leggermente più basse, con ovvio beneficio per il server che deve eseguirle. Una soluzione semplice, certamente, ma funzionale e decisamente pratica in molti casi reali.
Di fatto, evitare di sovraccaricare l’hosting può essere fatto seguendo 4 basilari linee guida:
- sfruttando meccanismi di cache sul proprio sito web, in modo che vengano servite un buon numero di pagine statiche che, per ovvie ragioni, costano molto poco in termini computazionali per il server;
- isolando le varie parti di funzionamento del sistema, cercando di individuare quelle che potrebbero compromettere l’uso del nostro sito;
- facendo in modo di ridurre al massimo l’uso di plugin, ovvero massimizzare il codice controllabile direttamente dall’utente;
- cercando di seguire pratiche di buona programmazione, tra cui (ad esempio, ma non solo): limitando il numero di query sul database per eseguire per visualizzare una “pagina media”, evitando di fare troppe chiamate HTTP (soprattutto dall’esterno) e via dicendo;
- usare un software di verifica delle prestazioni come ad esempio l’ottimo, e abbastanza facile da usare, P3 per WordPress.
In linea di massima queste sono le indicazioni da seguire, chiaro che poi potrebbe essere necessario l’intervento di uno specialista del settore. Nei casi pratici di mia conoscenza, comunque, in particolare i punti 2 e 3 sono quelli più facilmente attuabili dagli utenti medi, che possono già da soli portare a miglioramenti accettabili.
👇 Da non perdere 👇
- Informatica 🖥
- Internet 💻
- Marketing & SEO 🌪
- Reti 💻
- Scrivere 🖋
- Sicurezza & Privacy 👁
- Svago 🎈
- 💬 Il nostro canale Telegram: iscriviti
- 🟢 Hash fragment dinamici: le specifiche di Google
- 🟠 Domini .AU: come e dove registrarne uno
- 🟠 Error HTTP 400 – 400 Bad Request: cos’è e come si risolve