Visa ett inlägg
Oläst 2011-03-09, 16:18 #2
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
Du kan tyvärr inte göra så jättemycket genom att ändra de där inställningarna. Grundproblemet kommer fortfarande att finnas kvar, nämligen att Prefork MPM är oerhört dyr och har mycket dålig gprestanda vid högt besökarantal. Du kan prova att minska KeepAlive så att anslutningarna släpps fortare, men det försämrar också upplevelsen för besökarna då de måste vänta på att webbläsaren skapar en ny anslutning för varje sidvisning.

Det stämmer dock inte att MaxClients är hårdkodat till 256 (var har du hört det?). MaxClients i Prefork har en övre gräns som är lika med inställningen ServerLimit. Vill du öka MaxClients ska du allså även öka ServerLimit. ServerLimit å sin sida har en övre gräns på 20000.

Det långsiktiga målet bör nog vara att försöka övergå till Worker MPM eller byta webbserver helt. Den vanligaste orsaken att man kör Prefork är att man har PHP som Apache-modul. Om det är din anledning så försök använda PHP som FastCGI istället så att du kan köra Worker.

Kortsiktigt kan du dock slippa göra ändringar i din kod (om den är beroende av att köras som Apache-modul) genom att lägga in en reverse-proxy (något som är bra att ha ändå när man kör Apache). Det är en annan mjukvara som agerar mellanhand och har hand om alla anslutningar. Jag har kört Nginx som reverse-proxy med gott resultat och det finns flera lätta guider för hur du gör. Enkelt ser det då ut så här:

Besökare <-> Nginx <-> Apache

Nginx tar emot besökaren, håller uppkopplingen vid liv (Keep-Alive) så att sidladdningar går fortare samt kan även konfigureras att helt ta hand om statiskt material såsom bilder om du vill. Då kan du låta Apache ha hand om skript och annat som kräver särskild konfiguration. Vill du att Apache ska få rätt IP-adresser från besökarna kan du då även lägga in modulen mod_rpaf, annars komme Apache se alla anslutningar som om de kommer från localhost.

Andra mjukvaror som kan agera reverse-proxy är till exempel Lighttpd och Varnish (den senare är helt och hållet byggd för ändamålet).

Apache (eller rättare sagt ditt operativsystem) köar anslutningarna. Kön blir så lång som ditt operativsystem tillåter. Webbläsarna ger dock upp efter någon minut och kopplar ner med ett felmeddelande till besökaren.

Du kan hålla kolla på anslutningar, bandbredd och liknande genom modulen mod_info.

Senast redigerad av emilv den 2011-03-09 klockan 16:25
emilv är inte uppkopplad   Svara med citatSvara med citat