Avatar billede loproc Praktikant
19. oktober 2005 - 19:26 Der er 18 kommentarer

Apache clustering

Hejsa Eksperter.

Jeg har en lille hosting virksomhed, og har indtil videre haft alle sider på en server. Det er vokset for stort til at alle siderne kan være på en server (pga. php parsing) så jeg skal have lavet en eller anden form for clustering.

Den simple måde er at have flere webservere der har filerne liggende på en nfs/smb share men er bange for at det ikke giver ordentlig performance. Hardwaremæssigt har jeg et raid kort der understøtter raid5 som kunne bruges i en central filserver. Det er godt nok kun ATA133 men burde alt andet lige give en del bedre performance end alm. diske (der er endvidere en GB ram på kortet, som cache). Maskinerne har gigabit netværk mellem sig.

Den anden måde er at distribuere filerne ud på maskinerne, men da der jo også kan uploades filer gennem PHP og lign. tror jeg ikke på den løsning.

Den tredje ville være at lave et cluster på OS level, men det virker ret uoverskueligt.

Er der nogen der har nogle erfaringer, links el. lign. som kan hjælpe mig i den rigtige retning?

Med venlig hilsen
Martin Kruse Jensen
Avatar billede arne_v Ekspert
19. oktober 2005 - 20:36 #1
Jeg er ikke web hotel på LAMP ekspert, men umiddelbart ville jeg mene at du først
skulle splitte:

web & db server -> web server + db server

og derefter:

web server + db server -> web server 1 + web server 2 + db server

og lave en ikke clustered løsning d.v.s. at halvdelen af kunderne
ligges på web server 1 og halvdelen på web server 2

er det en enkelt stor kunde som skal spredes ud på 2 servere så
skal du til at tænke på noget clustering, men det første spørgsmål er
så: er den web applikation cluster ready ? (det er den ikke automatisk)
Avatar billede loproc Praktikant
19. oktober 2005 - 21:05 #2
Jeg har allerede en dedikeret webserver, sql server og mailserver, men der er en enkelt side der er stor nok til at give et load average på over 4 så der er klart behov for en eller anden clustering løsning...
Avatar billede arne_v Ekspert
19. oktober 2005 - 21:18 #3
hvordan vil du load balance ?

skal du bruge session replikering ? (kan man lave session replikering med PHP ?)

PHP har ikke noget application object men er der andre system specific state
brug i web applikationen ?

er den web applikation cluster ready ?
Avatar billede loproc Praktikant
19. oktober 2005 - 21:22 #4
Øøøøh, stort spørgsmålstegn :p

Ville være bedst hvis sessions replikeres. Sessions er i PHP's tilfælde bare en række filer, og kopierer man dem til en anden maskine er de pludselig der, uden problemer.

Der er ikke kodet noget system-specifikt i PHP filerne.

Cluster ready vil sige?
Avatar billede arne_v Ekspert
19. oktober 2005 - 21:40 #5
cluster ready er sådan bare en opsummering af tidligere punkter

jeg har lidt svært ved at forestille mig "kopiere filer" virke som session
replikering
Avatar billede loproc Praktikant
19. oktober 2005 - 21:44 #6
Når der startes en session i PHP, er det der sker sådan set bare at nogle data bliver serialiseret og skrevet ned i en fil som har session'ens navn... Intet mere, intet mindre
Avatar billede arne_v Ekspert
19. oktober 2005 - 21:47 #7
og når man på maskine 1 gemmer en varekurv i session så dukker den op i
samme session på maskine 2 via hvad ?
Avatar billede Syska Mester
19. oktober 2005 - 21:49 #8
Arne har ret, jeg tror du får svært ved at lave det hvis ikke det er indbygget i php... Men jeg skal lige love for der er stor load på hvis 1 webside kan tage pusten fra din webserver... så tror jeg det nemmeste og billigste ville være at få fat i en stor server som kan klare loadet alene og så bruge den anden til de små kunder...
// ouT
Avatar billede loproc Praktikant
19. oktober 2005 - 21:51 #9
Det er det jeg skal finde ud af ;)
Filerne (både sessions, filer som en webmaster uploader via ftp, og filer som brugere uploader via HTTP) skal replikeres til de andre maskiner... Og som sagt var der jo den måde med at ligge filerne på en smb/nfs share, men ved ikke om der er god performance ved det...
Avatar billede arne_v Ekspert
19. oktober 2005 - 21:52 #10
jeg formoder at "1 side" er "1 site"
Avatar billede loproc Praktikant
19. oktober 2005 - 21:53 #11
Buzzzz: Der er netop et kæmpe load på - mest fordi siden er skrevet i PostNuke CMS'et og har elendig performance. Det tager sommetider op til 7 sek. at generere en side.
Avatar billede loproc Praktikant
19. oktober 2005 - 21:54 #12
Det er sitet ungmor.dk der tager pusten fra det hele - den er utroligt populær og nævnes konstant i diverse ugeblade, tv og lign.
Avatar billede arne_v Ekspert
19. oktober 2005 - 21:55 #13
den fil replikering lyder farlig kompleks

del fil storage vil gøre brug af filer langt simplere - performance er jeg dog også
tvivlsom over for

og jeg ved ikke om PHP kan håndtere 2 PHP servere som opdaterer session filer samme
sted eller om den ene kan komme til at overskrive den anden

der er nogen ting du skal have undersøgt omkring PHP

men du skal også have undersøgt logikken i den applikation - applikationer
er ikke bare cluster ready per automatik
Avatar billede loproc Praktikant
19. oktober 2005 - 22:01 #14
Jeg er 100% sikker på at det ikke er noget problem at håndtere sessions, bare filerne er begge steder. 2x servere der skriver dertil er heller ikke noget problem. Det ved jeg med sikkerhed.

"Applikationen" er jo bare en PHP side, og den kan uden problemer køres på flere maskiner - så sætter jeg jo bare en load-balancer foran der fordeler HTTP requests på de to maskiner. Så længe jeg kan være sikker på at filerne synches realtime er der ingen problem overhovedet.
Avatar billede arne_v Ekspert
19. oktober 2005 - 22:37 #15
Avatar billede Syska Mester
19. oktober 2005 - 22:37 #16
Nok det med at sync real time er nok den største udfordring... session skal jo heller ikke være på begge servere, hvis hvis den load balancing kan finde på at smide brugeren over på den anden server.... kan det give problemer, og det kan vel ske... Tror stadig jeg vil gå efter en størrer server da det vil gøre det hele nemmere, eller i det mindste smide upload filerne på en central server....

Men synes stadig det er utroligt at det kan tage så meget load.....
Avatar billede Syska Mester
19. oktober 2005 - 22:40 #17
wow, det lyder jo godt Arne, tror godt han kan bruge det :-)
Avatar billede Slettet bruger
19. oktober 2005 - 23:33 #18
Hej
Jeg hælder nok også mest til at du bør invistere i en større server til siden, eller opgradere den eksisterende.
Er Apache optimeret til siden mht. antal childs, ressourceforbrug etc.?

Vedr. LB-clusterløsninger til LAMP skulle Emic Networks (www.emicnetworks.com) ha' en god løsning - har dog ingen erfaring med dem.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester