22.2 Load balancing

La tecnica del load balancing (bilanciamento di carico) è utilizzata per realizzare un cluster in grado di distribuire uniformemente il carico di lavoro sui vari nodi. Tale meccanismo si basa sul fatto che uno dei nodi, in genere l’unico che riceve le richieste dall’esterno, decide, sulla base di un algoritmo che tiene conto del carico di CPU di ogni nodo del cluster, a quale nodo recapitare la richiesta, in maniera tale che quest’ultimo esegua le operazioni necessarie per soddisfarla (v. fig. 22.2).


pict
Figura 22.2: Schematizzazione di un cluster load balancing.

A parte il piccolo overhead dello smistamento delle richieste, questa tecnica consente di non caricare troppo uno dei nodi rispetto agli altri, mantenendo così mediamente la capacità di risposta dei singoli nodi ad un livello più alto. Questo meccanismo tenta di parallelizzare, per quanto possibile, l’esecuzione delle operazioni per servire una quantità maggiore di richieste per unità di tempo.

Il load balancing viene generalmente utilizzato per la realizzazione di cluster di server web (HTTP1), in maniera da offire un servizio migliore nel fornire le pagine richieste dai client.

Le migliori prestazioni attendibili da un cluster load balancing sono quelle del nodo più veloce quando è scarico. In media le prestazioni offerte sono più o meno analoghe a quelle medie dei nodi che compongono il cluster. Ovviamente all’aumentare del carico (numero di richieste provenienti dall’esterno) le prestazioni degradano ma in maniera inversamente proporzionale al numero dei nodi totali.

[da completare ...]