Visa ett inlägg
Oläst 2011-02-16, 21:39 #6
emilvs avatar
emilv emilv är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Feb 2004
Inlägg: 1 564
emilv emilv är inte uppkopplad
Bara ett inlägg till!
emilvs avatar
 
Reg.datum: Feb 2004
Inlägg: 1 564
Detta liknar minnesfel men det är svårt att säga exakt utan mer data. Därför är övervakning bra (det är bra av andra anledningar också, som att man får varningar och ibland även kan förebygga problem). Om du kör till exempel GD så kan du plötsligt börja använda mycket minne (för att någon postar en stor bild eller liknande), och ibland slår man i taket. Även andra sorters skript kan trigga hög minnesanvändning men GD är något jag sett flera gånger på olika sajter.

Får du slut på minne kommer Linux som standard att börja döda processer mer eller mindre slumpmässigt, vilket kan ge obehagliga konsekvenser; du vet inte längre vilka program som är igång och vilka som inte är det. Kanske finns det beroenden mellan programmen som inte längre kan uppfyllas.

Om du kör Apache med mod_php kan det även vara bra att veta att Apache som standard aldrig lämnar tillbaka det minne som PHP använder. Om du använder mycket minne i ett skript kommer detta minne därför bara kunna användas av Apache i fortsättningen - och kör du preforkad Apache (vilket många gör med PHP) blir problemet ännu värre eftersom minnet bara kan användas av just den Apache-processen! Ett inte helt ovanligt problem är därför att du kanske har ett skript som slukar mycket minne ibland, men varje gång skriptet körs hanteras det av olika Apache-processer. Varje process behåller minnet och till slut är det slut.

Den bästa lösningen är att köra PHP som FastCGI, men har du inte möjlighet till det kan en nödlösning vara att konfigurera Apache till att då och då döda sina processer och forka om dem. Kolla då på inställningen maxrequestsperchild som du kan behöva sätta till ett lägre värde.

Allt detta förutsatt att det faktiskt är minnet som är problemet. Börja med att hitta felet innan du börjar fundera på lösning.
emilv är inte uppkopplad   Svara med citatSvara med citat