Kom ihåg mig?
Home Menu

Menu


Lastbalansera web server på linux

 
Ämnesverktyg Visningsalternativ
Oläst 2009-05-07, 21:20 #1
coredevs avatar
coredev coredev är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Sep 2007
Inlägg: 1 554
coredev coredev är inte uppkopplad
Bara ett inlägg till!
coredevs avatar
 
Reg.datum: Sep 2007
Inlägg: 1 554
Hej!

Vi behöver verkligen börja lastbalansera våra web-servrar. Det finns ju en hel del lastbalanserare att välja på, e.g. mod_balancer / mod_proxy, pound, nginx, varnish, et.al. Och frågan är vilken man skall köra / välja. Vore intressant att få höra era erfarenheter.

Har börjat exprementera med mod_balancer / mod_proxy, men konfigurationen verkar onödigt krånglig. Om vi har förstått det rätt så krävs det alltså att vi skapar en subdomän per webserver för varje domän (30+), e.g. server1.example.com, server2.example.com... etc.. Sådant leder lätt till en enda stor härva som är omöjlig att hålla uppdaterad.

Varnish verkar lida av samma symptom som mod_balancer.

Konfigurationen för lastbalansering med nginx existerar knappt.

Pounds konfiguration verkar då mer lovande. Där behöver man helt enkelt bara definiera vilka IP-nummer som skall ingå i klustret. Å andra sidan verkar ju detta blogg-inlägget inte lovande: http://blog.emmettshear.com/post/2008/03/0...-load-balancing.

Så ös på med era erfarenheter / rekomendationer Är tacksam för allt.

Kör idag 4 dedikerade webservrar med Apache 2 / PHP5 på debian.
coredev är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-07, 23:14 #2
JLEs avatar
JLE JLE är inte uppkopplad
Flitig postare
 
Reg.datum: Jul 2007
Inlägg: 382
JLE JLE är inte uppkopplad
Flitig postare
JLEs avatar
 
Reg.datum: Jul 2007
Inlägg: 382
Kanske en dum fråga, men behöver ni verkligen lastbalancera? Vad är det som tar CPU?

Testat att använda ett CDN såsom Amazon CloudFront eller SimpleCDN?
JLE är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-07, 23:23 #3
patrikweb patrikweb är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Nov 2004
Inlägg: 6 096
patrikweb patrikweb är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Nov 2004
Inlägg: 6 096
Skaffa riktiga hårdvaru lastbalanserare istället, eller stå hos en leverantör som kan erbjuda det som service.

Kör själv lastbalansering på vissa servrar, då använder jag stödet man har i core utrustningen man ändå har.
patrikweb är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-08, 08:32 #4
coredevs avatar
coredev coredev är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Sep 2007
Inlägg: 1 554
coredev coredev är inte uppkopplad
Bara ett inlägg till!
coredevs avatar
 
Reg.datum: Sep 2007
Inlägg: 1 554
Citat:
Ursprungligen postat av JLE
Kanske en dum fråga, men behöver ni verkligen lastbalancera? Vad är det som tar CPU?

Hej och tack för input. Jo vi behöver verkligen lastbalansera. Varje verksamhet kommer väl (förhoppningsvis) dit en vacker dag - och nu är det vår tur. Vi har liggat i och optimerat våra script, installerat xcache samt cachar databasfrågor mot memcache, men nu går det inte längre

Det som tar CPU är helt enkelt våra script, många olika produkter som är av avancerad typ. Många rader kod. Det är inte "blocket" direkt.

Citat:
Ursprungligen postat av patrikweb
Skaffa riktiga hårdvaru lastbalanserare istället, eller stå hos en leverantör som kan erbjuda det som service.
Kan tyvärr inget om hårdvarubalansering. Är det att föredra? Vilka är fördelarna? Man kan väl i princip säga att en server som kör en dedikerad lastbalanserar-mjukvara blir som en hårdvaru-balanserare?


Fler erfarenheter tas tacksamt emot
coredev är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-08, 09:12 #5
Björklunds avatar
Björklund Björklund är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jul 2006
Inlägg: 594
Björklund Björklund är inte uppkopplad
Mycket flitig postare
Björklunds avatar
 
Reg.datum: Jul 2006
Inlägg: 594
Lastbalansera med DNS eller dedikerad lastbalanserare.
Billiagast är BSD eller Linux. Vill du ha lite bättre support/prestanda så titta på Cisco eller F5.
Undvik leverantörer som bygger in lastbalansering i sin core-utrustning. Det bör ligga på dedikerad utrustning framför servrarna.

PM:a om du vill ha hjälp.
Björklund är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-08, 09:18 #6
jompers avatar
jomper jomper är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: May 2004
Inlägg: 1 132
jomper jomper är inte uppkopplad
Har WN som tidsfördriv
jompers avatar
 
Reg.datum: May 2004
Inlägg: 1 132
Ja, round-robin-dns måste vara det absolut enklaste, och sedan låta webbfrontarna dela på en databasserver. Då blir det basic och inget special alls.

Hur mycket har ni jobbat med att optimera? Kör ni nån php-accelerator? När vi började köra APC för PHP så mer än halverades CPU-loaden.
jomper är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-08, 10:10 #7
JLEs avatar
JLE JLE är inte uppkopplad
Flitig postare
 
Reg.datum: Jul 2007
Inlägg: 382
JLE JLE är inte uppkopplad
Flitig postare
JLEs avatar
 
Reg.datum: Jul 2007
Inlägg: 382
Jag brukar optimera på följande sätt:

* Sphinx Search för att avlasta mysql
* memcached
* varnish
* xdebug för att hitta flaskhalsar i php-koden
* Logga alla långsamma mysql-frågor och optimera bort dessa

Testat det?
JLE är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-08, 10:56 #8
coredevs avatar
coredev coredev är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Sep 2007
Inlägg: 1 554
coredev coredev är inte uppkopplad
Bara ett inlägg till!
coredevs avatar
 
Reg.datum: Sep 2007
Inlägg: 1 554
Citat:
Ursprungligen postat av jonasb76
Lastbalansera med DNS eller dedikerad lastbalanserare.
Det vore mycket vänligt om någon har förslag på hårdvaru-lastbalanserare som fungerar bra för er samt hur dessa fungerar rent praktiskt. I mitt huvud bör de vara som en switch som även kan last-balansera. Viktigt är att de är session-medvetna.

Citat:
Originally posted by -jomper@May 8 2009, 09:18
Hur mycket har ni jobbat med att optimera? Kör ni nån php-accelerator? När vi började köra APC för PHP så mer än halverades CPU-loaden.
1) Vi har arbetat massor med att optimera - men vi har helt enkelt avancerade produkter och mycket trafik.
2) Japp vi kör XCache - det hjälpte en hel del.

Citat:
Ursprungligen postat av JLE
Jag brukar optimera på följande sätt:
* Sphinx Search för att avlasta mysql
* memcached
* varnish
* xdebug för att hitta flaskhalsar i php-koden
* Logga alla långsamma mysql-frågor och optimera bort dessa
Testat det?
Vi har inget prestandaproblem med databasen, vi kör redan idag memcached (som är helt sjukt grym!) samt även sphinx (som är helt sjukt underbar!).

Vi har inte kört någon profiler på koden, men som sagt så har vi spenderat många och långa timmar med optimering. Det är helt enkelt lastbalansering som är vårt nästa steg. Kör du det genom varnish eller använder du den bara som cache / proxy?
coredev är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-08, 11:01 #9
obes avatar
obe obe är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 172
obe obe är inte uppkopplad
Medlem
obes avatar
 
Reg.datum: Dec 2004
Inlägg: 172
DNS-round robin är enklast. Men Nginx fungerar utmärkt, drar nästan igen cpu alls och är stabil.

Glöm inte att installera php-apc eller någon annan php-accelerator, det sparar mycket pulver på Apache-maskinerna.

Du kan sätta lastbalanseraren själv som bakup-server och låta apache lyssna på en annan port:

Citat:

upstream *backend *{
* * * *server * 192.168.xxx.xxx; # www
* * * *server * 192.168.xxx.xxx; # www
* * * *server * 192.168.xxx.xxx; # www
* * * *server * 192.168.xxx.xxx:8888 * * * * backup; # lastbalanseraren själv
}
Edit: Upptäckte att ni skrivit det mesta som jag sa redan...
obe är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-08, 11:07 #10
coredevs avatar
coredev coredev är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Sep 2007
Inlägg: 1 554
coredev coredev är inte uppkopplad
Bara ett inlägg till!
coredevs avatar
 
Reg.datum: Sep 2007
Inlägg: 1 554
Citat:
Originally posted by obe@May 8 2009, 11:01
DNS-round robin är enklast. Men Nginx fungerar utmärkt, drar nästan igen cpu alls och är stabil.
Glöm inte att installera php-apc eller någon annan php-accelerator, det sparar mycket pulver på Apache-maskinerna.
Du kan sätta lastbalanseraren själv som bakup-server och låta apache lyssna på en annan port:
Citat:

upstream backend {
server 192.168.xxx.xxx; # www
server 192.168.xxx.xxx; # www
server 192.168.xxx.xxx; # www
server 192.168.xxx.xxx:8081 backup; # denna maskinen
}
Med DNS-round robin så kan man inte köra med persistent sessions va? Det vill säga att du alltid hamnar på samma maskin, och undviker konstiga utloggningar, etc..

Blir det dubbel configuration med Nginx? Måste man sätta upp alla virituella host:ar i config-filen eller kan man säga att den skall acceptera allt och sedan skicka det vidare oberört? Kan Nginx hantera persistant sessions?
coredev är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 17:55.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017