Bekijk Volledige Versie : load balancing
ccchosting
28/03/08, 22:00
Geachte ik ben op zoek naar de eventuele mogelijkheden en kosten voor het volgende:
Op dit moment hebben wij 1 klant met 1 website die op dit moment gemiddeld 2 miljoen hits per dag genereerd.
Openstaande connecties liggen overdag tussen de 400 en 600 connecties.
(dit is de apache - directadmin server)
Op dit moment draaid deze website op 2 servers:
1x simpele opteron server
Hierop draaien de websites i.c.m DirectAdmin.
1x zware (single) opteron server (kan worden uitgebreid met 2e cpu)
Hierop draaid de database, circa 1,5GB groot.
Nu merken wij toch dat de websites langzaamer beginnen te draaien en ik heb het idee dat dit niet te verhelpen is met zwaardere servers omdat de eerste server een nette load heeft en gemiddeld 70 a 80 idle is.
Ik heb zojuist met de klant gesproken over een eventuele oplossing om de apache reqesten te gaan verdelen over 2 servers.
Ik vermoed dat we hiermee weer een stuk verder vooruit kunnen gaan.
Nu is mijn vraag, is dit verstandig en zoja aan welke kosten zou ik moeten denken als ik dit door een ervaren iemand laat uitvoeren (incl de load balancer)
Sowieso gaat je dit niet gemakkelijk lukken met DA, dus daar vanaf stappen is al een goed idee.
Maar je moet rekenen op iets van 2 a 3 webservers, een software-matige loadbalancer dmv LVS en dan nog het uurtarief van iemand die zoiets kan installeren.
ccchosting
28/03/08, 22:46
Afstappen van DA is een idee.
Wat stel je dan voor?
Wel of geen controlpanel?
Een softwarematige load balancer is in dit geval denk ik een goede uitkomst.
Ik neem aan dat dit aanzienlijk minder kost als een hardwarematige loadbalancer.
Dus: 4 servers:
loadbalancer, Mysql en twee servers met o.a apache en de webbestanden?
Aan welke eisen moet zo softwarematige load balancer eigelijk voldoen?
Swiftway-UK
28/03/08, 22:56
Een softwarematige load balancer is in dit geval denk ik een goede uitkomst.
Ik neem aan dat dit aanzienlijk minder kost als een hardwarematige loadbalancer.
Een software loadbalancer is niets meer dan een server ingericht als load balancer. Nadelen zijn:
1. Je moet relatief veel kennis moet hebben om het te beheren, ook na setup
2. Je moet de server blijven beveiligen (net zoals een normale server)
3. dat je net zo snel hardware failures kan krijgen als een normale server, met als consequentie dat alles achter je load balancer offline ligt.
----
Een veel betere oplossing is een gebruikte hardware loadbalancer, ik denk dat je op de gebruikte markt voor 1000 - 1500 euro klaar kunt zijn. Dan heb je een nette load balancer met 8 poorten.
Misschien is load balancing wel helemaal niet de beste oplossing in dit geval. Je kan load ook 'verdelen' door bijvoorbeeld images door een aparte server te laten afhandelen. Bijvoorbeeld via een lightweight http server.
Of misschien doet een reversed proxy die cached wat ie kan cachen wel wonderen. Of misschien is wat spelen met de headers al afdoende.
Nadeel van load balancing is (zowel hardware als software) dat het specifieke kennis vereist en dat altijd net blijkt dat je er niet voldoende vanaf weet "when the shit hits the fan".
We hebben zelf bijv. goede ervaring door een reversed proxy voor sites te plaatsen die uberhaubt niet dubbel uit te voeren waren. Elk probleem heeft z'n eigen oplossing (en meestal meer dan 1 :))
Nu is mijn vraag, is dit verstandig en zoja aan welke kosten zou ik moeten denken als ik dit door een ervaren iemand laat uitvoeren (incl de load balancer)
Dit is erg lastig om in te schatten als veel dingen nog onduidelijk zijn. Heb je al bekeken waar precies het struikelblok in de opstelling zit (webservers, database)? Vaak valt hierin al veel verbetering aan te brengen. Hoe wil je de load verdelen over de apache servers? (hardwarematig, softwarematig, round-robin). Je moet toch rekenen op prijzen tussen de 70 en 100 euro per uur. Minsten zo belangrijk, hoe wil je de support voor de klant gaan uitvoeren? Ook uitbesteden?
Kun je niet de domeinnamen toevoegen op beide servers en dan een round robin instellen?
je zal, zoals al door anderen aangegeven, moeten uitzoeken waar nu de bottleneck zit, en de oplossing daarvoor hangt dan nog af van een aantal punten.
is de gehele site dynamisch, welk gedeelte van de site is het drukst bezocht, moet er een realtime update plaats vinden, dan wel wordt er met sessies gewerkt, of zou je dit bijv. voor 30 minuten kunnen cachen.
persoonlijk zou ik zelf nooit een enkele loadbalancer neerzetten, ongeacht of het nou software of hardware is, netjes dubbel uitvoeren. geeft ook meer ruimte tot het plegen van onderhoud.
Een software loadbalancer is niets meer dan een server ingericht als load balancer. Nadelen zijn:
1. Je moet relatief veel kennis moet hebben om het te beheren, ook na setup
2. Je moet de server blijven beveiligen (net zoals een normale server)
3. dat je net zo snel hardware failures kan krijgen als een normale server, met als consequentie dat alles achter je load balancer offline ligt.
Onze allesweter vergeet toch echt dat bij een loadbalancer
1. Je ook relatief veel kennis moet hebben om hem te beheren
2. Een load balancer ook werkt met patches / updates. De load balancer is niets anders dan een appliance met software
3. De load balancer ook uit hardware bestaat dat kapot kan gaan, een HA situatie is dan een aanrader. Indien je load balancer niet transparant is ligt alles wat daarachter ligt in geval van falen ook offline.
johan.smits
29/03/08, 09:59
Loadbalancen is een specifiek stukje wat je veel hoofdpijn kan bezorgen.
Wij zelf hebben de volgende Setup:
Uplink
Loadbalancer1 Loadbalancer2
Active Backup
Server 1 Server 2
Server 3 Server 4
Server 5 Server 6
File1 File2
Active Backup
Alle 6 de server's draaien actief op gescheiden sitches met bonding NIC en gescheiden Stroom Feeds.
Voor de apache sessies hebben we ervoor gekozen om de sessies in de MYSQL database op te slaan. Zo kun je eenvoudig elke webserver je sessie gebaseerde site hosten. Je moet echter soms wel een aanpassing maken in je script voor het aanroepen van je sessie. De rest van je script blijft zoals het is.
De MYSQL database server's staan in Master-Master replicatie en zijn beide active.
De loadbalancer doet hiervoor ook de MYSQL balanacen.
Ik heb nog een aantal nuttige links:
MYSQL: http://www.onlamp.com/pub/a/onlamp/2006/04/20/advanced-mysql-replication.html
Loadbalancer: http://www.keepalived.org/LVS-NAT-Keepalived-HOWTO.html enkel de config files. Debian heeft een deb om te gebruiken.
Voor de fileserver: http://www.howtoforge.com/high_availability_nfs_drbd_heartbeat
We draaien in deze setup nu al bijna 3 jaar en hebben in het beging de nodige problem gehad.
1 Advies, schaf goede hardware aan en begin niet te klein. We hebben zelf gemerkt dat bij het loadbalacen van je MYSQL zeer veel preformance opleverd dan het uitbreiden van je Apache. Uiteraard kun je met 1 apache niet de snelheid evenaren dan met 1.
Mijn advies:
Schaf een 2e database server aan met dual CPU en plaats een 2e in de oude.
2x loadbalancer (hardware of software maakt niet uit als je maar failover hebben)
2e apache server met dual CPU en gebruik je oude enkel voor images bv.
ccchosting
29/03/08, 12:48
ok het is wel duidelijk, ik heb gewoon iemand nodig die dit eventueel kan opzetten en onderhouden en uitleg geeft hierover.
even een korte uitleg waar de 2 miljoen (en oplopend) hists vandaan komen.
(dit omdat er ook andere oplossingen hier worden aangeboden)
Wij hosten een statistieken pagina waar webmasters gratis kunnen aanmelden en een account kunnen anmken.
Op de website van de webmaster wordt een klein icoontje geplaats, dit veroorzaakt nu grootdeels de 2 miljoen hits.
Vergelijk dit dus met netstat of stat4you.
Heb je je hoster hierover al eens benaderd hiermee? Er zijn er veel die een loadbalancer hebben staan waar je (tegen betaling) ook gebruik van kan maken.
Een klant van ons doet veel in loadbalancing. Indien je intresse hebt dan kan ik je de gegevens wel emailen (daar heeft onze klant geen bezwaar tegen), is overigens een bekende hier op 't forum. Als ik het goed heb dan hebben zij een oplossing die 120 miljoen pageviews per maand verwerkt en ongeveer 1,5 miljard hits per maand. (Dat zijn +/- 4,5 miljoen pagina's per dag en +/- 6,5 miljoen hits per dag).
hostingpower
31/03/08, 11:40
Wellicht dat http://www.interworx.com/ wat voor je is. Kan je leuke en snelle omgevingen mee opzetten.
Wellicht dat http://www.interworx.com/ wat voor je is. Kan je leuke en snelle omgevingen mee opzetten.
Waarom een duur control paneel kopen voor een enkele of een paar sites. Voor een goede beheerder is het betrekkelijk eenvoudig om een load balanced site op te zetten door gebruik te maken van open-source software. Interworx is volgens mij niet redundant uit te voeren. Volgens mij kan de loadbalancer niet redundant uitgevoerd worden (correct me if i'am wrong).
De cluster manager is de loadbalancer, fileserver en MySQL server en dus een spof.
De DB server kan je wel redundant opzetten, maar de loadbalancer niet (vanuit het cp).
Alle plaatjes naar een 2e webserver verplaatsen. Dit zal al veel schelen verwacht ik, uitgebreide uitleg kunnen wij wel geven.
Alle plaatjes naar een 2e webserver verplaatsen. Dit zal al veel schelen verwacht ik, uitgebreide uitleg kunnen wij wel geven.
Een hele heuse webserver voor alleen plaatjes ? Niet bepaald met het oogpunt op server consolidatie. Zeker nu de energie prijzen een stijgende trend aanhouden is het goed om dat van te voren uit te zoeken. Naast apache zou je plaatjes kunnen server dmv een lightweight httpd server die of op een andere poort draait of dmv een proxy afgevangen wordt. Als ik de openings post zo lees is een machine enkel voor plaatjes niet echt van toepassing.
Tevens kun je eens kijken naar pooling van lighthttpd (http://trac.lighttpd.net/trac/wiki/Docs:ModProxyCore) :) vooral schaalbaar...!
Een hele heuse webserver voor alleen plaatjes ? Niet bepaald met het oogpunt op server consolidatie. Zeker nu de energie prijzen een stijgende trend aanhouden is het goed om dat van te voren uit te zoeken. Naast apache zou je plaatjes kunnen server dmv een lightweight httpd server die of op een andere poort draait of dmv een proxy afgevangen wordt. Als ik de openings post zo lees is een machine enkel voor plaatjes niet echt van toepassing.
Tevens kun je eens kijken naar pooling van lighthttpd (http://trac.lighttpd.net/trac/wiki/Docs:ModProxyCore) :) vooral schaalbaar...!
Een tweede webserver kan op een bestaande server, ik heb nergens gezegt dat het op een andere fysieke server moet.
Een tweede webserver kan op een bestaande server, ik heb nergens gezegt dat het op een andere fysieke server moet.
en je hebt ook nergens gezegt dat je dat bedoeld.
Overigens is een ~server in de volksmond een fysieke machine, anders spreek je over services.