Cosa sono?![]()
Non l'ho mai capito![]()
Benvenuto nella nostra community, registra un account gratuito ADESSO!
Oltre 7000 persone hanno già registrato il loro account.
Chiedi aiuto, conversa con aziende ed esperti del settore webhosting italiano.
Iscriviti subito! In meno di 2 minuti!
Cosa sono?![]()
Non l'ho mai capito![]()
Significa basilarmente che diversi thread o processi si occuperanno delle pagine.
Questa soluzione è efficace solo se si hanno diverse macchine o se la macchina locale ha diversi processori. (altrimenti, lo stesso processore dovrà eseguire diversi thread o processi, ma la velocità generale sarà la stessa).
Naturalmente, questo significa che ci si dovrà prendere cura della condivisione dei dati tra i processi. Un modo per farlo è usare un database dove memorizzare tutti i dati che ncessitano di essere condivisi da tutti i processi. Tutti i processi leggeranno e scriveranno lo stesso database assicurando così a tutti le stesse informazioni.
Ci sono due modi per fare load-balancing con CherryPy. Il più semplice da configurare si applica solo a sistemi Unix-based multiprocessore.
gentoo
Ultima modifica di Luca; 15-03-2006 alle 10:31
vorrei segnalare questo progetto che reputo davvero interessante:
openmosix
load balancing è qualcosa di leggermente diverso da un cluster
il load balancing di solito è fatto per scaricare il carico di un'applicativo e ci sono soluzioni su misura fornite dall'applicativo stesso o da uno dei componenti che usa
il cluster è solo un concetto generale che indica un'insieme di computer che si suddividono tra loro l'operazione o le operazioni da eseguire
ad esempio nel kernel c'è una cosa chiamata Virtual Server che serve proprio ad eseguire il load balancing è trasforma tante N macchine come fosserò una sola![]()
Salve,
Beh..il concetto di load balancing è molto semplice...suddividere in carichi eguali (più o meno) la stessa elaborazione. Esempio pratico...se hai un Sito grosso, puoi mettere 2 macchine a fare da Web Server e davanti a queste un Hardware (se Linux un bel LVS) che faccia da smistatore...controllando , per esempio, i parametri di carico delle macchine che gli stanno dietro, in modo da inidirizzare le chiamate verso la macchina più scarica in quel momento....
Il Cluster, invece, è un insieme di oggetti dello stesso tipo che eseguono elaborazioni anche differenti. Nel caso Dei Server posti in cluster, avremo n macchine che funzionano come se fossero una soltanto...massimizzando le prestazioni...chiaramente su applicazioni che supportano tali configurazioni....solitamente Database, tipo MSSQL Server, Oracle, DB2 z/OS ....
Ciao !!
Ho letto solo ora, esco da una giornata intensa di lavoro...
Grazie molte a tutti delle spiegazioni, in pratica questa soluzione la usano tutti i grossi siti/portali giusto?
Praticamente potrei usare 5 server per il servizio httpd e altri 5 per mysql ?
Sono niubbo di ste cose![]()
Salve,
Beh..sì...più o meno...
Dipende poi dalla piattaforma middleware che utilizzi... conosco poco MySQL ... non so se si può installare in configurazione "cluster"...
Ciao !!
no
il load balancing richiede che i dati siano centralizzati o comunque uguali su tutte le macchine
se hai 5 server mysql scoppia tutto perché la scrittura dei record avverrebbe "casualmente" sulle varie macchine ... ergo avresti inconsistenze bestiali
infatti di solito si usano soluzioni di Master/Slave con mysql
credo che mysql sia compatibile... visto che è 1 dei piu famosi db....![]()
abbiamo postato nello stesso momento credo...Originariamente Scritto da daniele_dll
sarebbe master/slave?![]()
"credo" di siOriginariamente Scritto da MaxX
ma non l'ho mai usato direttamente
le funzionalità di clustering sono presenti SOLO in mysql 5 usando ndbengine, se non erro (il nome forse è simile se non è quello)
usando master/slave si può usare la replicazione in modo di avere N punti di lettura ed un solo punto di scrittura, solo che questo richiederebbe tipo 2 connessioni mysql, una seguita al master per scrivere ed una allo slave per leggere, ma potrebberò sorgere problemi di sincronizzazione usando questo sistema perché non è che sia proprio adatto![]()
Salve,
Torno sull'argomento perchè mi era "sfuggito"....
Infatti, "load balancing" sui DB non si fa...si mette il DB in Cluster e in load balancing gli Application Server su cui girano gli oggetti che si connetteranno con il DB...sfruttando così il pool delle connessioni che ogni application server esegue (COM+ per la piattaforma Windows e Websphere per quella IBM..per esempio), visto che anche queste NON sono infinite...ma influenzano e non poco il corretto funzionamento di un DB.
La configurazione precedente (Master e Sleave) , a mio avviso, avrebbe anche dei grossi problemi di transazionalità... Come garantire la lettura di informazioni coerenti con lo stato della transazione ? (Regole ACID...)
Beh...spero di avere portato un piccolo contributo alla conversazione...
Ciao !!
si, in una struttura del genere (ergo master/slave) le transazioni possono andarsi (quasi) a benedire
diciamo che le operazioni riguardanti le transizioni dovrebberò essere eseguite in toto sul master mentre le letture secondarie (che comuneque sono molte di più rispetto alle prime) possono essere eseguite sugli slave
comunque, ritornando al discorso del load balancing su db, e nello specifico su mysql, queste pagine potrebberò risultare interessanti
http://www.lod.com/whitepapers/mysql-cluster-howto.html
http://www.linux-mag.com/2004-10/mysql_01.html
http://dev.mysql.com/doc/refman/5.0/...-overview.html
Quest'ultima mostra un'immagine estremamente significativa di com'è stato implementato il supporto per ambienti distribuiti su mysql
Ovviamente altri database come Oracle, DB2, MSSQL ed altri ancora hanno anche loro il supporto per lavorare in cluster, ma sono configurazioni particolari e, probabilmente, a livello software, più costose ... in un buon 90% dei casi, sul web, mysql basta e avanza perché offre una certa sicurezza e stabilità, oltre che con la nuova versione ha colmato alcune "buche" che aveva rispetto agli avversari
Salve,
Effettivamente, il grafico postato è interessante...anche se non si specifica se il layer Storage risiede o può risiede su macchine fisiche differenti...e non specifica che succede se uno dei nodi che compongono il Cluster , per un motivo o per un altro , va giù.
Concordo sul fatto che MySQL, per la stragrande maggioranza delle applicazioni Web , possa essere utilizzato senza troppi patemi.
Per le grandi organizzazioni....beh...ci sono i DB che sono stati nominati prima .......
Ciao !!
il primo link che ho postato, anche se è un how-to al cluster su mysql, spiega, o per meglio dire, fa vedere che mysql, quando va giù uno storage engine lo ripopola appena ritorna su.
Cosa ti riferisci quando dici "se il layer storage riseide o piò risiedere su macchine differenti?" ... mi è sembrato di capire che il layer sia composto da più macchine che devono svolgere appositamente quel ruolo, e spero che effetivamente sia cosi, anche perché le macchine che devono fare da container per i dati dovrebberò avere dei dischi molto performanti e memoria per la cache e le macchine che fanno da front-end per gli storage, quindi le macchine che gestiscono la connessione, dovrebberò avere ovviamente processori molto prestanti e parecchia più memoria delle precedenti (almeno mi è parso di capir questo ^^)
Ci sono attualmente 1 utenti che stanno visualizzando questa discussione. (0 utenti e 1 ospiti)
Segnalibri