WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Vad är lämplig load för en webbserver? (https://www.wn.se/forum/showthread.php?t=1042772)

studiox 2010-07-03 01:46

Vad är lämplig load för en webbserver?
 
Ja, otroligt generellt fråga, men jag är så otroligt korkad så jag ställer den ändå :)

Vad är er egen erfarenhet? Ni som kör lastbalanserare vad brukar ni kunna få ut i antalet klienter/connections per webbserver?

Snackar vi 100? 1.000? 10.000?
Hur bra skalar apache när man närmar sig 1000 connections?

Ska man köra prefork eller worker om man har en multicore (typ 8 core) maskin?

Björklund 2010-07-03 07:40

Du ska köra worker.

Hur många connections du kan köra beror helt på vad det för hårdvara och applikationer bakom sajten.

När vi hjälper kunder med lastbalansering slår vi på mod_status och sedan försöker vi benchmarka hur mycket en sajt klarar och sedan bedömmer hur många webbservrar som behövs. mod_status är mycket bra att se hur många samtidiga connections/trådar som körs.

emilv 2010-07-03 08:31

Om du kör moduler som inte är multitrådade (exempelvis mod_php) så måste du köra prefork, eller fundera på att byta till FastCGI för sådana moduler.

Varje uppkoppling får en egen process med prefork, vilket kräver en hel del arbete (framförallt RAM, men även CPU om du har plötsliga toppar). Processerna läggs automatiskt på olika kärnor av operativsystemet så den biten behöver du inte oroa dig för, vare sig med prefork eller worker.
Men 500 uppkopplingar, kanske 1000, ska inte vara något problem med prefork heller. Stäng av moduler du inte behöver så drar processerna mindre RAM och då kan du hantera fler processer.

Om du väljer att gå över till FastCGI så är steget kanske inte så stort att slänga ut Apache helt och byta upp dig till en bättre webbserver, exempelvis Nginx eller Lighttpd. Båda dessa är mycket bra på att hantera många samtidiga uppkopplingar (så bra att det är operativsystemets kärna som sätter taket).

Denna PDF ger mycket bra information om hur man skalar antalet uppkopplingar:
http://www.opendocs.net/apache/apach...he-handout.pdf
Den gäller framförallt Apache och Linux, men många delar är tillämpbara även på andra plattformar.

chrizz 2010-07-03 10:03

Ska jag bli först att slå på trumman för lighttpd? =)

Björklund 2010-07-03 16:40

Citat:

Ursprungligen postat av chrizz (Inlägg 20361354)
Ska jag bli först att slå på trumman för lighttpd? =)

Trumma på du. :-)
Men då trådstartaren inte undrar om olika webbservrar så blir det ju lite offtopic....

chrizz 2010-07-04 09:27

Citat:

Ursprungligen postat av Björklund (Inlägg 20361366)
Trumma på du. :-)
Men då trådstartaren inte undrar om olika webbservrar så blir det ju lite offtopic....

Jag förutsätter bara att grunden i hans fråga ligger i att få ut så mycket som möjligt från sin hårdvara och då menar jag att det finns alternativ till Apache som kan hjälpa avsevärt beroende på användningsområde. Så jag trummar vidare här ... ;)

studiox 2010-07-04 17:36

Trådskaparen skiter i om det är Apache eller annan trevlig server om det kan ge bättre output :-) Är det många här som kör lighttpd tillsammans med php (en liten detalj som jag råkade glömma nämna i sammanhanget)

studiox 2010-07-04 17:39

Citat:

Ursprungligen postat av emilv (Inlägg 20361352)
Om du kör moduler som inte är multitrådade (exempelvis mod_php) så måste du köra prefork, eller fundera på att byta till FastCGI för sådana moduler.

Det där var rätt intressant. Skulle det kunna bli bättre att köra FastCGI alltså? Hur executerar mod_php inom apache? Man ser ju aldrig php som en egen process, då den initieras innifrån apache. Mina små tester som jag hittills gjort tyder på att apache skalar rätt bra iom. att den startar upp fler processer när förfrågan ökar (stresstest) men att php och mysql inte riktigt hänger med på samma sätt.

abergman 2010-07-04 18:10

Citat:

Ursprungligen postat av studiox (Inlägg 20361421)
Det där var rätt intressant. Skulle det kunna bli bättre att köra FastCGI alltså? Hur executerar mod_php inom apache? Man ser ju aldrig php som en egen process, då den initieras innifrån apache. Mina små tester som jag hittills gjort tyder på att apache skalar rätt bra iom. att den startar upp fler processer när förfrågan ökar (stresstest) men att php och mysql inte riktigt hänger med på samma sätt.


Jag är själv ett fan av php som cgi, tycker det är smidigare att jobba med och det presterar hyfsat mycket bättre enligt mina erfarenheter. Kanske inte ska säga att det är just phpt som presterar bättre, utan mer nginx+php-fpm som presterar bätttre, vi gjorde ett enkelt stresstest av en wordpress install med w3 total cache och testade det på apache2 och nginx http://www.cmsdirekt.se/wordpress/be...e-2-och-nginx/ Där har du resultaten om det är något som hjälper dig. Det här körde vi på en vps med 512 ram och en dual core. Med lite haxx på databasen så går det att få ut ännu mer kräm:)

En anledning till att jag har fastnat för fastcgi implementationen är att den är så himla enkel att lastbalansera:)

Clarence 2010-07-05 22:40

Citat:

Ursprungligen postat av studiox (Inlägg 20361419)
Trådskaparen skiter i om det är Apache eller annan trevlig server om det kan ge bättre output :-) Är det många här som kör lighttpd tillsammans med php (en liten detalj som jag råkade glömma nämna i sammanhanget)

Är förvisso många som kör, men inte i närheten av lika många som Apache. Sen är det vissa som bara kör statiskt/stream via lighttpd och låter en apache bakom hantera dynamiska requests, men i min erfarenhet är lighttpd en bra ersättare till apache även där som dessutom presterar lite bättre. Stora nackdelarna med lighty är att rewrites får skrivas (och dessutom får du starta om servern när de ändras) samt att de finns desto färre färdiga moduler om man har specialkrav.

Oavsett så är det först när du jämför statiska filer som du får en riktigt stor skillnad mot apache med t ex lighty och nginx.


Alla tider är GMT +2. Klockan är nu 22:04.

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