FAQ |
Kalender |
2009-07-29, 09:58 | #1 | ||
|
|||
Klarade millennium-buggen
|
Hej,
har ett litet problem med Apache på en vps. Apache har en obehaglig tendens att fylla upp allt minne tills det tar slut och servern dör. Det tar en halvtimme till ett par timmar, men sen är det kört. Jag har 1 G på min vps, utan apache går det åt ca 500 MB till mail mm, och så fort jag startar apache så tuggar det långsamt i sig allt minne. Det verkar som om en massa processer skapas och sedan somnar utan att avslutas, och då ligger de och blockerar minne. jag kan gå från 70 till 300 processer sovande innan servern ger upp. har mixtrat lite med apacheinställningarna utan egentlig framgång, tycker att den dokumentation som finns och de råd som ger handlar mest om prestanda och statiskt material istället för att minska minnesanvändningen. En enkel lösning är naturligtvis att ta ner min tjänst och ersätta den med en lågupplöst bild på en söt katt, men det vill jag inte. Har typ 2000 besök om dagen. Sidorna är tunga med mycket php och stora databaser. Kör nu fastcgi istället för modphp utan att se någon större skillnad. Prövade också med mpm-worker istället för prefork, men det sänkte servern på 10 minuter istället för en timme. man tycker ju att minnet borde frigöras när besökaren fått sitt, eller har jag fel? Har jag nått gränsen för vad en vps pallar med, måste jag uppgradera till egen server? Alternativet är att starta om apache varje halvtimme i ett cronjob. |
||
Svara med citat |
2009-07-29, 10:25 | #2 | |||
|
||||
Mycket flitig postare
|
Det låter onekligen konstigt. Du behöver inte speciellt många processer för att serva dina besökare, hur ser din konfigurationsfil ut?
Kör du databas på samma server? |
|||
Svara med citat |
2009-07-29, 10:58 | #3 | ||
|
|||
Klarade millennium-buggen
|
Vilka moduler har du inladdade i Apache?
Kod:
httpd -l |
||
Svara med citat |
2009-07-29, 12:07 | #4 | ||
|
|||
Klarade millennium-buggen
|
Tack för svar. Det är mycket moduler inlagda och det som står för lasten är det dynamiska materialet. Tyvärr är inte annat än apache ett alternativ.
Har nu trixat med fastcgi och lagt till DefaultMinClassProcessCount 3 och IdleTimeout 60 Det gjorde en klar förbättring, hoppas det inte skadar prestanda alltför mycket. Övrig konfig av intresse i apache2: StartServers 5 MinSpareServers 10 MaxSpareServers 20 MaxClients 30 MaxRequestsPerChild 100 KeepAliveTimeout 5 MaxKeepAliveRequests 100 modfastcgi: MaxRequestsPerProcess 1000 # Maximum number of PHP processes MaxProcessCount 15 DefaultMinClassProcessCount 3 # Number of seconds of idle time before a php-cgi process is terminated IPCCommTimeout 360 IdleTimeout 60 jag kör också mysql på samma server men den drar inte tillnärmelsevis så mycket: 153M virt och 51M res enligt top, osäker på vad de olika egentligen betyder. De stora minnesätarna förutom apache är spamassasin/amavis/clamd. Men de är väluppfostrade nog att hålla sig på samma nivå hela tiden. |
||
Svara med citat |
Svara |
|
|