Cos'è il bilanciamento del carico? | Come funzionano i bilanciatori di carico

Il bilanciamento del carico è il processo di distribuzione del traffico tra più server per migliorare le prestazioni e l'affidabilità di un servizio o di un'applicazione.

Obiettivi di apprendimento

Dopo aver letto questo articolo sarai in grado di:

  • Definire il bilanciamento del carico
  • Spiegare le due categorie principali di algoritmi di bilanciamento del carico
  • Comprendere concetti importanti di bilanciamento del carico come il monitoraggio del server e il failover

Argomenti correlati


Vuoi saperne di più?

Abbonati a theNET, il riepilogo mensile di Cloudflare sulle tematiche più discusse in Internet.

Fai riferimento all'Informativa sulla privacy di Cloudflare per scoprire come raccogliamo ed elaboriamo i tuoi dati personali.

Copia link dell'articolo

Migliora le prestazioni dei siti Web con Cloudflare Pro e i nostri componenti aggiuntivi per gli strumenti di velocità

Cos'è il bilanciamento del carico?

Immagine di bilanciamento del carico

Il bilanciamento del carico è la pratica di distribuzione dei carichi di lavoro computazionali tra due o più computer. Su Internet, il bilanciamento del carico viene spesso utilizzato per suddividere il traffico di rete tra diversi server. Ciò riduce il carico su ciascun server e li rende più efficienti, velocizzando le prestazioni e riducendo la latenza. Il bilanciamento del carico è essenziale per il corretto funzionamento della maggior parte delle applicazioni Internet.

Senza il bilanciamento del carico: il server si sovraccarica, il servizio rallenta Con il bilanciamento del carico: il carico di lavoro è distribuito uniformemente

Immagina una fila alla cassa in un negozio di alimentari con 8 linee alla cassa, solo una delle quali è aperta. Tutti i clienti devono mettersi nella stessa fila e quindi ci vuole molto tempo prima che un cliente finisca di pagare la spesa. Ora immagina che il negozio apra invece tutte e 8 le linee di pagamento. In questo caso, il tempo di attesa per i clienti è circa 8 volte più breve (a seconda di fattori come la quantità di cibo acquistata da ciascun cliente).

Il bilanciamento del carico si comporta essenzialmente nello stesso modo. Dividendo le richieste degli utenti tra più server, i tempi di attesa degli utenti vengono notevolmente ridotti. Ciò si traduce in una migliore esperienza utente: i clienti del supermercato nell'esempio precedente probabilmente cercherebbero un supermercato più efficiente se dovessero sempre riscontrare lunghi tempi di attesa.

Come funziona il bilanciamento del carico?

Il bilanciamento del carico è gestito da uno strumento o un'applicazione chiamato bilanciatore del carico. Un bilanciatore del carico può essere basato su hardware o basato su software. I bilanciatori di carico basati su hardware richiedono l'installazione di un dispositivo di bilanciamento del carico dedicato; i bilanciatori di carico basati su software possono essere eseguiti su un server, su una macchina virtuale o nel cloud. Le reti di distribuzione dei contenuti (CDN) spesso includono funzionalità di bilanciamento del carico.

Quando arriva una richiesta da un utente, il bilanciatore assegna la richiesta a un determinato server e questo processo si ripete per ogni richiesta. I bilanciatori del carico determinano quale server deve gestire ogni richiesta in base a una serie di algoritmi diversi. Questi algoritmi rientrano in due categorie principali: statici e dinamici.

Algoritmi statici di bilanciamento del carico

Gli algoritmi statici di bilanciamento del carico distribuiscono i carichi di lavoro senza tenere conto dello stato corrente del sistema. Un bilanciatore del carico statico non sarà a conoscenza di quali server stanno funzionando lentamente e quali server non vengono utilizzati a sufficienza. Assegna invece i carichi di lavoro in base a un piano predeterminato. Il bilanciamento del carico statico è rapido da configurare, ma può causare inefficienze.

Tornando all'analogia di cui sopra, immagina che in un supermercato con 8 casse aperte ci sia un dipendente il cui compito è quello di indirizzare i clienti verso le casse. Immaginate che questo dipendente proceda semplicemente in ordine, assegnando il primo cliente alla linea 1, il secondo alla linea 2 e così via, senza voltarsi indietro per vedere la velocità con cui si muovono le linee. Se tutti gli 8 cassieri lavorano in modo efficiente, il sistema funzionerà bene, ma se uno o più di loro sono in ritardo, alcune file potrebbero diventare molto più lunghe di altre, con conseguente brutta esperienza per i clienti. Anche il bilanciamento del carico statico presenta lo stesso rischio: a volte, i singoli server possono comunque risultare sovraccarichi.

Il DNS round robin e il bilanciamento del carico casuale lato client sono due forme comuni di bilanciamento del carico statico.

Algoritmi dinamici di bilanciamento del carico

Gli algoritmi dinamici di bilanciamento del carico prendono in considerazione la disponibilità attuale, il carico di lavoro e l'integrità di ciascun server. Possono spostare il traffico da server sovraccarichi o con scarse prestazioni a server sottoutilizzati, mantenendo una distribuzione uniforme ed efficiente. Tuttavia, il bilanciamento del carico dinamico è più difficile da configurare. La disponibilità del server è influenzata da diversi fattori: lo stato di integrità e la capacità complessiva di ciascun server, la dimensione delle attività distribuite e così via.

Supponiamo che il dipendente del supermercato che smista i clienti alle casse utilizzi un approccio più dinamico: osserva attentamente le file, vede quali si muovono più velocemente, osserva quanti prodotti alimentari sta acquistando ogni cliente e assegna i clienti di conseguenza. Ciò potrebbe garantire un'esperienza più efficiente per tutti i clienti, ma metterebbe anche a dura prova l'addetto allo smistamento in coda.

Esistono diversi tipi di algoritmi dinamici di bilanciamento del carico, tra cui il bilanciamento del carico basato sulla minima connessione, il bilanciamento del carico basato sulla minima connessione ponderata, il bilanciamento del carico basato sulle risorse e il bilanciamento del carico basato sulla geolocalizzazione.

Dove viene utilizzato il bilanciamento del carico?

Come discusso in precedenza, il bilanciamento del carico viene spesso utilizzato con le applicazioni Web. I bilanciatori di carico basati su software e su cloud aiutano a distribuire uniformemente il traffico Internet tra i server che ospitano l'applicazione. Alcuni prodotti di bilanciamento del carico nel cloud possono bilanciare i carichi del traffico Internet su server distribuiti in tutto il mondo, un processo noto come bilanciamento del carico del server globale (GSLB)

Il bilanciamento del carico è comunemente utilizzato anche all'interno di grandi reti localizzate, come quelle all'interno di un datacenter o di un grande complesso di uffici. Tradizionalmente, ciò ha richiesto l'uso di dispositivi hardware quali un controller di distribuzione delle applicazioni (ADC) o un dispositivo di bilanciamento del carico dedicato. A questo scopo vengono utilizzati anche i bilanciatori di carico basati su software.

Cos'è il monitoraggio del server?

I bilanciatori di carico dinamici devono essere consapevoli dello stato di integrità del server, ad esempio il suo stato attuale, le sue prestazioni e altro, e lo monitorano eseguendo controlli regolari. Se un server o un gruppo di server ha prestazioni lente, il bilanciatore di carico distribuisce meno traffico su di esso. Se un server o un gruppo di server si guasta completamente, il sistema di bilanciamento del carico reindirizza il traffico a un altro gruppo di server, un processo noto come "failover".

Cos'è il failover?

Il failover si verifica quando un determinato server non funziona e un bilanciatore del carico distribuisce i suoi normali processi a un server secondario o a un gruppo di server. Il failover del server è fondamentale per l'affidabilità: se non è presente un backup, un arresto anomalo del server potrebbe causare il blocco di un sito Web o di un'applicazione. È importante che il failover avvenga rapidamente per evitare interruzioni nel servizio.

Scopri di più sui diversi aspetti del bilanciamento del carico:

DOMANDE FREQUENTI

Cos'è il bilanciamento del carico?

Il bilanciamento del carico consiste nel ridistribuire il traffico di rete o i carichi di lavoro computazionali su più server, con l'obiettivo di migliorare le prestazioni e l'affidabilità di una data applicazione.

Cos'è un bilanciatore di carico?

Un bilanciatore di carico è uno strumento o un'applicazione, basati su hardware o software, che distribuisce i carichi di lavoro e il traffico tra più server.

Qual è la differenza tra algoritmi di bilanciamento del carico statici e algoritmi dinamici?

Gli algoritmi di bilanciamento del carico statici ridistribuiscono il traffico in base a un piano predeterminato, senza considerare lo stato di salute dei server, mentre gli algoritmi dinamici regolano la distribuzione del traffico in tempo reale tenendo conto della loro operatività e delle loro performance.

Cos'è il monitoraggio dei server nel bilanciamento del carico?

Il monitoraggio dei server prevede il controllo regolare della funzionalità e delle prestazioni dei server, in modo che il bilanciatore di carico possa distribuire il traffico in modo efficiente ed evitare di sovraccaricare dei server in condizioni precarie.

Cos'è il "failover" nel bilanciamento del carico?

Il failover è il reindirizzamento automatico del traffico ai server di backup quando un server primario va in avaria. Questa azione garantisce una disponibilità del servizio quasi ininterrotta.

In che modo il bilanciamento del carico migliora le prestazioni?

Il bilanciamento del carico allevia lo stress sui server, rendendoli più efficienti e facendo in modo che gli utenti non rimangano bloccati in attesa di risposte dallo stesso server o pool di server. Ciò consente di accelerare i tempi di risposta e di ridurre la latenza, il che si traduce in un servizio più rapido ed efficiente per gli utenti.

Quali sono i metodi più diffusi di bilanciamento del carico?

I metodi più diffusi sono i seguenti: DNS round-robin, DNS round-robin ponderato, connessione minima, connessione minima ponderata e bilanciamento del carico basato sulle risorse.

Dove viene comunemente utilizzato il bilanciamento del carico?

Il bilanciamento del carico è una tecnica comunemente utilizzata in applicazioni web, datacenter e grandi reti per gestire e distribuire efficacemente i carichi di lavoro computazionali.

Cos'è il Global server load balancing (GSLB)?

Il Global server load balancing (GSLB) distribuisce il traffico Internet tra i server situati in tutto il mondo, contribuendo a ottimizzare le prestazioni per gli utenti, indipendentemente dalla loro ubicazione.

In che modo il bilanciamento del carico impatta sull'esperienza utente?

Il bilanciamento del carico minimizza i tempi di attesa e garantisce un servizio più fluido e reattivo, e offre agli utenti finali un'esperienza complessivamente migliore.