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?
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)
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...
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.
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
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
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...
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.
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.
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.....
wow, det lyder jo godt Arne, tror godt han kan bruge det :-)
Synes godt om
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.
Synes godt om
Ny brugerNybegynder
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.