Requisiti Server Moodle: CPU, RAM, storage e architettura dimensionati sul carico reale della piattaforma.
Non dimensioniamo Moodle sul numero totale di account. Analizziamo utenti contemporanei, tipo di attività, SCORM, quiz, report, video, plugin, integrazioni e picchi di utilizzo.
Una cosa è sapere se Moodle può essere installato. Un’altra è sapere se può sostenere il carico reale della tua organizzazione.
I requisiti minimi software aiutano a definire la compatibilità. Il dimensionamento di produzione richiede invece utenti simultanei, scenari di utilizzo, dati, plugin e processi che lavorano nello stesso momento.
Il totale degli account dice poco sul picco che il server deve realmente sostenere.
Una piattaforma può avere migliaia di utenti registrati e un carico modesto, oppure pochi account ma picchi molto concentrati durante quiz, SCORM o lezioni programmate.
Approfondisci Moodle e utenti contemporanei.

Due utenti possono generare carichi completamente diversi a seconda di ciò che stanno facendo.
Numero di core e frequenza contano, ma vanno letti insieme al tipo di lavoro eseguito.
PHP, query, plugin, task cron e processi concorrenti possono utilizzare la CPU in modo differente. Dimensioniamo la capacità sullo scenario di picco, non su una media astratta.
La memoria non appartiene solo a Moodle: PHP, database, Redis e sistema operativo devono convivere.
Una configurazione corretta assegna memoria ai servizi che la usano davvero evitando di saturare il sistema o di lasciare risorse inutilizzate.

Capacità, IOPS, latenza e crescita MoodleData determinano requisiti diversi.
SSD, NVMe o storage condiviso non vanno scelti solo sulla quantità di spazio. Serve capire come e quanto frequentemente la piattaforma legge e scrive dati.
Approfondisci MoodleData.
Il database è spesso uno dei punti più sensibili quando aumentano concorrenza, report e tracking.
Configurazione, memoria, query, indici e I/O devono essere valutati insieme al volume reale del dataset e alle operazioni più frequenti.

I processi PHP devono sostenere il numero di richieste concorrenti senza consumare più memoria di quella disponibile.
Versione PHP, worker, timeout, opcode cache e configurazione FPM fanno parte del dimensionamento e devono restare coerenti con RAM e CPU.

Redis può ridurre lavoro ripetitivo su cache e sessioni, ma non sostituisce il dimensionamento del resto dello stack.
Valutiamo se e come introdurlo in funzione di utenti contemporanei, sessioni, cache e architettura.
Approfondisci Redis Moodle.
Il server deve sostenere anche il lavoro che Moodle esegue quando gli utenti non stanno cliccando.
Task schedulati, sincronizzazioni, report e processi plugin possono competere per CPU, database e I/O con gli utenti collegati.
Approfondisci Moodle Cron.


La quantità di file e la velocità dello storage incidono sia sul funzionamento sia su backup e migrazione.
Dimensioniamo capacità, crescita, I/O e strategia di backup considerando SCORM, documenti, video e file prodotti dai plugin.
Approfondisci MoodleData.
Uno SCORM leggero e un catalogo con molti pacchetti pesanti non producono lo stesso carico.
Tracking, asset, apertura contemporanea dei corsi e peso dei pacchetti devono entrare nel capacity planning.
Approfondisci Moodle SCORM.

I quiz concentrano letture, salvataggi e invii in finestre temporali molto strette.
Se molti utenti iniziano o consegnano nello stesso momento, database, PHP e capacità del server devono assorbire il picco senza aumentare errori o tempi di risposta.

Report e dashboard possono generare query molto più pesanti della normale navigazione dei corsi.
Aggregazioni, filtri e dataset grandi vanno considerati quando il server deve servire contemporaneamente utenti e amministratori.
Approfondisci Reportistica eLearning.
Un plugin personalizzato può cambiare completamente il profilo di carico previsto dalla piattaforma.
Query, chiamate esterne, task in background e logiche custom vanno misurate sul caso reale prima di stimare la capacità necessaria.
Approfondisci Plugin Moodle.
CRM, SSO, ecommerce e servizi esterni possono aggiungere latenza e processi oltre al carico nativo di Moodle.
Le integrazioni devono entrare nel capacity planning soprattutto quando sincronizzano grandi quantità di utenti o dati.
Link: API Moodle, Integrazioni Moodle.

Servire grandi flussi video dallo stesso server Moodle può cambiare radicalmente banda e storage necessari.
Quando appropriato separiamo la distribuzione video dal server applicativo mantenendo su Moodle il controllo del percorso formativo.
Approfondisci Produzione Video eLearning.
100, 500 o 1000 utenti non sono una configurazione server: sono soltanto l’inizio della domanda.
Per evitare ricette fuorvianti usiamo scenari qualitativi e dimensioniamo sul comportamento reale.
| Scenario | Carico | Esempi di attività | Approccio |
|---|---|---|---|
| LMS piccolo | Basso | Lettura corsi, quiz occasionali, pochi utenti simultanei | Singolo server ben configurato |
| LMS medio | Medio | Più corsi, quiz, report, SCORM e amministrazione | Ottimizzazione e possibile separazione di alcuni servizi |
| LMS con picchi | Alto | Finestre di accesso concentrate, quiz, SCORM, report | Architettura progettata sui picchi |
| Enterprise | Molto alto | Migliaia di utenti, multi-tenant, integrazioni, picchi complessi | Possibile multi-node, HA e servizi separati |
Separare componenti ha senso quando aumenta controllo, capacità o resilienza: non per creare complessità inutile.
Semplice da gestire.
Può essere adeguato per molti progetti se correttamente dimensionato e monitorato.
Più controllo sul carico.
Database, cache o storage possono essere separati quando il progetto lo richiede.
La complessità deve avere uno scopo.
Ogni componente separato introduce rete, monitoraggio e gestione aggiuntivi.
Non esiste una categoria di server “giusta” per Moodle senza conoscere il carico.
Un VPS con risorse adeguate può essere corretto per molti scenari; un dedicato può offrire maggiore isolamento e controllo quando il carico lo richiede.
Approfondisci Server Moodle.
Il cloud permette scalabilità e servizi gestiti, ma costi e architettura devono restare coerenti con l’utilizzo reale.
Valutiamo cloud, VPS e server dedicati sulla base del progetto, evitando di trasformare il provider in una decisione tecnica presa a priori.

Quando il servizio non può dipendere da un singolo nodo, il requisito non è più solo performance: è resilienza.
Load balancer, più web node, sessioni condivise, database e storage devono essere progettati come un sistema coerente.
Approfondisci High Availability LMS.
Il load balancer distribuisce richieste, ma non elimina un collo di bottiglia condiviso su database o storage.
Lo introduciamo quando più nodi web sono realmente utili e quando sessioni, file e database sono pronti per un’architettura distribuita.
Separare il database può aumentare controllo e capacità, ma introduce rete e gestione aggiuntive.
La scelta dipende da query, dataset, carico concorrente, memoria e obiettivi di disponibilità.
Diventa rilevante soprattutto quando più web node devono accedere agli stessi file.
Capacità, latenza, locking e disponibilità vanno valutati prima di introdurre NFS o altre soluzioni condivise.
Il server di produzione non dovrebbe essere l’unico posto in cui esiste una copia recuperabile della piattaforma.
Database, MoodleData, configurazioni e codice devono entrare in una strategia di backup coerente con i tempi di ripristino richiesti.
Approfondisci Backup LMS.


Il dimensionamento non finisce quando il server viene acceso.
CPU, RAM, storage, database, Redis, processi e tempi di risposta permettono di verificare se il margine progettato rimane sufficiente nel tempo.
Approfondisci Monitoraggio LMS.
Aumentiamo CPU, RAM o storage quando le misure mostrano che la capacità è realmente il limite.
Picchi ricorrenti, saturazione, crescita dati o nuovi scenari di utilizzo possono rendere necessario un upgrade infrastrutturale.
Se una query impiega quindici secondi, raddoppiare la RAM può non cambiare nulla.
Plugin inefficiente, query lenta, task bloccato, storage remoto o configurazione errata richiedono un intervento mirato prima di acquistare capacità che non verrà utilizzata.
Approfondisci Moodle lento e Ottimizzazione Moodle.
Quando serve, verifichiamo scenari realistici prima di considerare sufficiente il dimensionamento.
Definiamo utenti simultanei e attività, osservando tempi, errori e saturazione. I test vengono pianificati evitando carichi indiscriminati sulla produzione.

Non dimensioniamo soltanto per sopravvivere al picco di oggi: definiamo anche margine e crescita futura.
Nuovi corsi, più utenti, nuovi SCORM, report, integrazioni e requisiti di disponibilità devono poter essere assorbiti senza ricominciare da zero a ogni crescita.
Il server deve sostenere il progetto di oggi senza impedirti quello di domani.
Definiamo un margine coerente con roadmap e crescita prevista, evitando sia il sottodimensionamento sia l’acquisto di risorse inutilizzate.
Partiamo dal carico reale e arriviamo all’architettura, non dal listino del provider.

Quando dimensiono un server Moodle non parto dal listino del provider. Parto dal momento peggiore della giornata.
Quanti utenti entrano, cosa fanno e quali processi lavorano contemporaneamente: queste informazioni valgono più del numero totale di account.
Il mio obiettivo è costruire un’infrastruttura con margine sufficiente, misurabile e coerente con la crescita prevista.
Cosa dicono i clienti che lavorano con Atlas Learning.
Le recensioni vengono mostrate dinamicamente tramite Trustindex.
Domande frequenti sul dimensionamento di Moodle.
Quali sono i requisiti server per Moodle?
I requisiti software minimi dipendono dalla versione Moodle. Il dimensionamento di produzione dipende invece da utenti contemporanei, attività, dati, plugin e infrastruttura.
Quanta RAM serve a Moodle?
Dipende da PHP, database, Redis, numero di processi e carico contemporaneo. Non esiste un valore unico valido per tutte le piattaforme.
Quanti core servono per Moodle?
Dipende dal numero di richieste simultanee, dal peso delle operazioni e da database, plugin e processi cron.
Moodle funziona su VPS?
Sì. Un VPS può essere adeguato se offre risorse e controllo coerenti con il carico previsto.
Serve un server dedicato?
Non necessariamente. Può diventare opportuno quando carico, isolamento o requisiti di performance richiedono maggiori garanzie sulle risorse.
Quanti utenti può gestire Moodle?
Non esiste un limite utile espresso soltanto in utenti registrati. Conta quanti sono contemporanei e cosa fanno.
Che server serve per 100 utenti?
Serve conoscere quanti dei 100 utenti saranno collegati contemporaneamente e se useranno quiz, SCORM, report o altre attività pesanti.
Che server serve per 500 utenti?
Il numero da solo non basta. Cinquecento utenti registrati e cinquecento utenti simultanei sono due scenari completamente diversi.
Che server serve per 1000 utenti?
Va definito il picco simultaneo, il tipo di attività e la crescita. Per carichi elevati può essere utile separare servizi o valutare architetture multi-node.
Redis è necessario per Moodle?
No. Può essere utile per cache e sessioni in molti scenari, ma non è obbligatorio per ogni installazione.
SSD o NVMe per Moodle?
Dipende da I/O, database, MoodleData e volume del progetto. NVMe può offrire prestazioni superiori, ma va valutato il collo di bottiglia reale.
Quanto spazio disco serve?
Dipende da MoodleData, SCORM, documenti, video, backup e crescita prevista nel tempo.
Il database deve stare su un server separato?
Non sempre. La separazione può essere utile con carichi elevati o esigenze di gestione specifiche, ma aumenta complessità e dipendenza dalla rete.
Moodle può lavorare in cluster?
Sì, con un’architettura progettata per più nodi web, sessioni condivise, database e storage accessibile in modo coerente.
Come si dimensiona Moodle per SCORM?
Valutiamo numero di utenti simultanei, peso dei pacchetti, tracking, asset e comportamento del server durante le aperture contemporanee.
Come si dimensiona Moodle per i quiz?
Consideriamo utenti simultanei, frequenza di salvataggio e invio, database e finestra temporale del picco.
Come verificare se il server è sottodimensionato?
Monitoriamo CPU, memoria, processi PHP, database, storage, errori e tempi di risposta durante lo scenario che crea il problema.
Nel momento di massimo carico, quanti utenti prevedi e cosa staranno facendo contemporaneamente?
Il server deve risolvere un problema attuale oppure deve essere dimensionato per un nuovo progetto? Da questa distinzione iniziamo la progettazione.