![]() |
Apache optimering sept 2010 (igen)
Jag har nu satt upp min server, en cloud server från City Network.
Behöver tips på hur man bör tuna sin apache (och kanske php, mysql mm). 1. Är det någon parameter som behöver ändras med min data nedan som utgångspunkt. 2. Finns andra tips för att optimera sin webbplats, server etc. 3. Bör man kompilera om Apache2, och hur gör man då. 4. Finns det några tummregler för MPM prefork och work? Alla tips mottages tacksamt. mvh Azone ### CMS ### Drupal (skräddarsytt forum för ämnet, med flera medlemsnivåer) ### Besök & Aktivitet ### 200 000 pageview/month 25000 besök 8500 Unikabesökare Runt 1200 besök per dag och 800 unika. ca 40-60 inloggade kvällstid (som är väldigt aktiva, chattar nästan via forumet). Dynamiska sidor, förhållandevis många php-processer antar jag. Rena URL'er (clean URL, mod_rewrite) Text och bilder ### Maskin (Virtual Maskin - City Cloud ### CPU 1 Memory 2 Gbyte Debian 5.0.6 64 bit Dell EqualLogic Raid storage Apache2 (prefork), php5, mysql ### php.ini ## memory_limit = 256M (php.ini) ### httpd.conf och apache.conf ### ServerRoot "/etc/apache2" PidFile ${APACHE_PID_FILE} Timeout 300 KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 15 <IfModule mpm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 256 MaxRequestsPerChild 0 </IfModule> <IfModule mpm_worker_module> StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 2000 </IfModule> # These need to be set in /etc/apache2/envvars User ${APACHE_RUN_USER} Group ${APACHE_RUN_GROUP} AccessFileName .htaccess DefaultType text/plain HostnameLookups Off |
Satsa på en annan httpd, så som Lighttpd eller Nginx
Dessa är optimerade från scratch o du slipper massa onödigt skräp som apache har. |
Jag måste kommentera min egen tråd, det funkar faktiskt väldigt bra nu. Mycket trafik och acceptabel access till webbsidan. Är dock ändå intresserad om det finns något som kan förbättras eller bör ändras.
|
Citat:
Är de svårare att konfigurera? Och fungerar clean URLs med dessa ? |
Citat:
lighttpd vet jag inte, eftersom jag inte har använt det. Nu behöver du iof php så out-of-the-box kommer det inte att fungera. |
Jag kan även rekommendera http://www.litespeedtech.com/ om du är ute efter att byte ut apache. Ett mycket enkelt Web GUI medföljer där du kan ändra mer eller minder alla inställningar. Snabbt går det också.
|
Har du hyfsat med minne i servern ser jag ingen poäng med att byta ut apache mot en mer lightweight server med bara 10k sidvisningar om dagen. Speciellt inte då du behöver sätta dig in i en ny servers inställningar och egenheter.
För snabbaste bytet är det nog litespeed som gäller då den har stöd för samma rewrites vad jag har för mig (har aldrig testat den). Annars är både Nginx och Lighttpd betydligt mer välanvända så om du söker svar på buggar eller problem kan de vara att föredra. Dock har båda två annorlunda system för URL rewrites jämfört med apache. Har dock väldigt bra erfarenhet av prestandan hos Lighttpd för riktigt rejäla trafikvolymer och jag vet att det finns många som har detsamma av nginx. |
Citat:
|
Lighttpd har tidigare dragits med minnesläckor och det är ju inte sådär asbra:( Nginx gör exakt samma sak och imho gör det bättre.
|
Citat:
|
Citat:
Nu går servern bra i 6 timmar sen blir den seg och låser sig så småningom (upplevs som låst). Någon som har någon idé? Jag har ökat MaxRequestsPerChild till 256 eftersom det enligt några webbsidor verkar vara standardvärde. Är 256 ok där? Jag har också installerat eaccelerator (php-cache), men vet inte hur man verifierar att den verkligen fungerar. Och som sagt server går bra i 6-12 timmar innan det kör ihop sig. Jag vet inte heller hur jag kan spåra eller ev se vad som går tungt heller. Har inte hunnit sätta mig in i det men tvingas nog göra det nu. Svårt också när man inte har ett GUI. mvh Azone |
Vilket OS kör du?
|
Följande konfig:
Virtual Machine at City Cloud CPU 1 Memory 2 Gbyte Debian 5.0.6 64 bit Dell EqualLogic Raid storage Apache2 (prefork), php5, mysql (+eaccelertor) memory_limit = 256M (php.ini) Kan dessa parametrar förbättra något, vet ej vilka värden jag bör använda. realpath_cache_size = 2M (satte den till 2M nyss) realpath_cache_ttl = 120 (default) |
Ah, sorry. Jag var blind. Har du testat att lägga databasen
på en egen server? |
Citat:
Notera "imho" dvs, att det är min åsikt och inte fakta. |
Stäng av moduler som inte behövs, t.ex:
httpd.conf: #LoadModule ldap_module modules/mod_ldap.so #LoadModule auth_ldap_module modules/mod_auth_ldap.so #LoadModule dav_module modules/mod_dav.so #LoadModule dav_fs_module modules/mod_dav_fs.so #LoadModule speling_module modules/mod_speling.so #LoadModule proxy_module modules/mod_proxy.so #LoadModule proxy_ftp_module modules/mod_proxy_ftp.so #LoadModule proxy_http_module modules/mod_proxy_http.so #LoadModule proxy_connect_module modules/mod_proxy_connect.so perl.conf #LoadModule perl_module modules/mod_perl.so python.conf #LoadModule python_module modules/mod_python.so Verifera att eAccelerator fungerar! Följer med en fil för detta: control.php Varför 256MB i PHP mem_limit? Det är väldigt mkt. Prova sänk värdet i KeepAliveTimeout:en. |
Vad är det som gör att du tror att apache är problemet? Försök först att identifiera exakt varför det hänger sig.
Kolla vilka, om några, processor som drar minne/CPU när det hänger sig. Titta på exekveringstider för PHP-scripten. Se om du har många SQL-queries som väntar på lås (väldigt vanligt problem för MyISAM-tabeller). Har du någon krävande bildbearbetning eller liknande? Annars kan du sänka memory_limit rejält för att utesluta att något PHP-script snor åt sig allt minne med ett par träffar. I annat fall kan en utskrift/loggning av max-minnet från PHP vara av intresse (memory_get_peak_usage()). |
Citat:
|
Tack för alla bra svar! Verkligen uppskattat, jag har lärt mig massor :-)
Nu har det fungerat rekordlänge (över 15 timmar) med "hyfsad" prestanda och utan behov av server-omstart. Senaste åtgärderna (efter en massa tester, läsande här (tack) och googlande) - Jag bytte eccaelerator från "php-läge" till "zend-läge" i php.ini - Satte ett värde på "eaccelerator.shm_size="" som var noll (0) default men då "åt" den minne i längden, när jag satte den till "16" stanade minnes-läkaget. Trots att noll anses vara default och att man inte skall behöva ändra värdet (??). Såg dock att "16" var ett vanligt värde och nu är det stabilt. - Jag fortsätter med apache2 eftersom det i sig inte verkar vara det största problemet. - Jag har verifierat att eccaleerator fungera både med phpinfo() + sett att cachefiler skapas i tmp dir. - Jag ökade realpath_cache_size=8M (från 2M i php.ini) - Kör "saidar" för att kolla minnet ibland (fungerar bra, men vad är standard för denna typ av koll?) - Enl Saidar ligger RAM-minnesförbrukning konstant på ca 800M-1G (av 2G), oavsett den belastning jag sett hittills (ganska många inloggade och aktiva). Nu verkar det vara stabilt iaf, och det är nog massor med tweaks som jag kan göra för att trimma systemet mer, och det kommer jag göra, men om detta håller sig känner jag mig lugn och måste koncentrera mig på lite annat ett tag. Men skall ta bort en del av de onödiga mods'en som några av er föreslagit ovan. Samt se om jag kan minska memory_limit lite. Men vi har krävande bildhantering ibland iaf. Därav det höga memory_limit. Jag har lite annat att ta tag i vad det gäller säkerhet, mysql-tweaks, filsystem, mailsystem och mycket mer (som jag förmodligen inte en vet än). Tack och bock mvh Azone |
Skulle vara kul att höra hur det gått sedan dess, hitta några nya optimeringar? (Är främst nyfiken på hur väl Drupal fungerar hos City Cloud.)
|
Alla tider är GMT +2. Klockan är nu 21:13. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson