FAQ |
Kalender |
2006-03-21, 20:49 | #1 | ||
|
|||
Mycket flitig postare
|
Jag förväntar mig en besöksanstormning på ca 5000 personer samtidigt.... är dessa värden vettiga eller bör jag ändra något?
# PidFile: The file in which the server should record its process # identification number when it starts. PidFile /var/run/apache2.pid # Timeout: The number of seconds before receives and sends time out. Timeout 300 # KeepAlive: Whether or not to allow persistent connections (more than # one request per connection). Set to "Off" to deactivate. KeepAlive On # MaxKeepAliveRequests: The maximum number of requests to allow # during a persistent connection. Set to 0 to allow an unlimited amount. # We recommend you leave this number high, for maximum performance. MaxKeepAliveRequests 0 # KeepAliveTimeout: Number of seconds to wait for the next request from the # same client on the same connection. KeepAliveTimeout 5 ## Server-Pool Size Regulation (MPM specific) ## # prefork MPM # StartServers ......... number of server processes to start # MinSpareServers ...... minimum number of server processes which are kept spare # MaxSpareServers ...... maximum number of server processes which are kept spare # MaxClients ........... maximum number of server processes allowed to start # MaxRequestsPerChild .. maximum number of requests a server process serves <IfModule prefork.c> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 256 ServerLimit 256 MaxRequestsPerChild 0 </IfModule> # pthread MPM # StartServers ......... initial number of server processes to start # MaxClients ........... maximum number of server processes allowed to start # MinSpareThreads ...... minimum number of worker threads which are kept spare # MaxSpareThreads ...... maximum number of worker threads which are kept spare # ThreadsPerChild ...... constant number of worker threads in each server process # MaxRequestsPerChild .. maximum number of requests a server process serves <IfModule worker.c> StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0 </IfModule> # perchild MPM # NumServers ........... constant number of server processes # StartThreads ......... initial number of worker threads in each server process # MinSpareThreads ...... minimum number of worker threads which are kept spare # MaxSpareThreads ...... maximum number of worker threads which are kept spare # MaxThreadsPerChild ... maximum number of worker threads in each server process # MaxRequestsPerChild .. maximum number of connections per server process (then it dies) <IfModule perchild.c> NumServers 5 StartThreads 5 MinSpareThreads 5 MaxSpareThreads 10 MaxThreadsPerChild 20 MaxRequestsPerChild 0 AcceptMutex fcntl </IfModule> |
||
Svara med citat |
2006-03-22, 20:25 | #2 | ||
|
|||
Medlem
|
Vad kör du för OS och server? Kör du en kraftig server med flera processorer (linux) bör du nog kompilera in MPM = worker. Vad ska du köra på sidan? Vilka moduler har du kompilerat in? Ta bort _allt_ som inte är livsnödvändigt.. Worker kan du köra så att varje server är 64 klienter och en klient får en thread.. Ex:
StartServers 10 MaxClients 640 ThreadsPerChild 64 Om du t.ex. ska köra en server med cgi program som tar kraftigt men inte så många kan du köra: ./configure --disable-asis --disable-auth --disable-autoindex --disable-access --disable-env --disable-imagemap --disable-include --disable-log-config --disable-negotiation --disable-setenvif --disable-userdir --with-mpm=worker --with-apr=/usr/local/apr-httpd/ --with-apr-util=/usr/local/apr-util-httpd/ För att nämna några exempel. Gå igenom compile instruktionerna på apache och tänk igenom vad du behöver och ta bort resten.. Kanske köra flera apache/servrar? |
||
Svara med citat |
2006-03-22, 20:39 | #3 | |||
|
||||
Bara ett inlägg till!
|
Hur mycket minne har du? Jag skulle vilja sänka KeepAliveTimeout från 5 till 2.
|
|||
Svara med citat |
2006-03-22, 21:01 | #4 | ||
|
|||
Mycket flitig postare
|
Sajten: Modellbilder.se
Många pageviews, över 200'000 per dag Besökare: 400 st samtidigt på kvällar Måga sql frågor (optimerade) Cache: jpcache på vissa sidor, eAccelerator för php Server: Xeon 2400 mhz, 2gb ram CPU load vid kvällar: 30-40% Load vid kvällar: 1-1.5 i average... Debian Linux, apache2, mysql4 |
||
Svara med citat |
2006-03-22, 21:52 | #5 | ||
|
|||
Mycket flitig postare
|
Citat:
Alltså rätt många.. det är en default apt get installation, som jag förstår kanske inte är optimal! Kan worker ge bättre prestanda trots att det bara är 1 cpu? |
||
Svara med citat |
2006-03-23, 10:06 | #6 | |||
|
||||
Klarade millennium-buggen
|
Det undrar jag med.
|
|||
Svara med citat |
2006-03-23, 15:13 | #7 | ||
|
|||
Medlem
|
Det vet jag faktiskt inte. Men jag kan säga direkt att du bör inte ha så många moduler inkompilerade. Ju mer moduler ju fler saker som körs varje gång.
Sen funderar jag på, är det någon speciell anledning du kör apache eller var den lättast att slänga in? Om jag förstått det rätt har du många men relativt lätta script? Kanske är lighthttpd eller boa något för dig? http://www.lighttpd.net/benchmark/ http://www.boa.org/ Båda gjorda för många visningar med förhållandevis lätta scripts. Webmonkey har en guide för att tuna apache - http://www.webmonkey.com/webmonkey/97/49/index3a.html (finns massor på google) Lighthttpd benchmarks finns på http://www.lighttpd.net/benchmark/ "lighttpd + fastcgi is more than 25% faster than apache + mod_php4." De har också en "migrating from apache" guide på http://trac.lighttpd.net/trac/wiki/MigratingFromApache och jag vet många stora siter som kör lighthttpd (alistapart t.ex.) Då du har så många besökare förseslår jag start att du sätter dig ner och kollar igenom alternativen och kanske kör lite egna benchmarks, du kan ju alltid köra igång testservrar på alternativa portar. Apache benmarking tools finns på t.ex. http://httpd.apache.org/docs/2.0/programs/ab.html (för 2.0an) Testa gärna lighttpd och säg hur den uppför sig |
||
Svara med citat |
2006-03-27, 13:05 | #8 | ||
|
|||
Medlem
|
Om du ska hantera sådär många besökare så ska du INTE låta apache serva statiskt innehåll typ bilder etc. Kör thttpd för bilderna och se till att optimera apache genom att kompilera den själv.
|
||
Svara med citat |
2006-03-29, 12:45 | #9 | |||
|
||||
Medlem
|
Citat:
Problemet med denna kraftiga trafikökning och prefork är att det kommer äta rejält med minne, och burken kommer börja swappa antagligen när det blir tungt. Du får slut på children i apache, och det kommer gå åt h-vette =) Ställ in worker lite saftigare (som någon beskriver i ett tidigare inlägg) och du bör nog vara redo för den där belastningen, ÄVEN om det nog kommer bli tungt så kommer det finnas children kvar som kan behandla alla requests. Ställ ned keep alive också som någon föreslog. 2 sek hade jag ställt på. |
|||
Svara med citat |
2006-04-05, 15:52 | #10 | |||
|
||||
Klarade millennium-buggen
|
Nu förstår jag att du får så många besökare, grymt snygg sida med snyggt innehåll!
|
|||
Svara med citat |
Svara |
|
|