[linux] Re: Keuze tussen worker method en prefork bij Apache

Cecil Westerhof cecilwesterhof op xs4all.nl
Wo Aug 8 14:27:06 CEST 2007


>> > Als je php als module wilt gebruiken, dan zit je vast aan de
>> prefork,
>> > want php is niet thread-safe.
>>
>> PHPMyAdmin lijkt mij wel handig om te gebruiken, maar als ik dat met
>> een losse interpreter doe, dan is dat dus geen probleem?
>
> Klopt. Wel minder snel...

Ik gebruik het waarschijnlijk alleen voor PHPMyAdmin. Dat zal ik niet
erg vaak gebruiken, dus dat zou niet een echt groot probleem moeten
zijn.


>> En hoe zit het bijvoorbeeld met ModPerl en ModPython? En zijn er nog
>> andere modules die niet threadsafe zijn?
>
> Modperl gaat volgens mij wel goed (perl snapt uit zichzelf al
> threads),
> modpython zou ik niet weten.

Moet ik dan even uitzoeken.


>> ook al aan dat worker beter is. Dus ik laat de boel maar op worker
>> staan. Alleen moet het aantal minSpareThreads flink omlaag. Dat
>> staat
>> nu op 25 en daardoor wordt Apache meteen getermineerd. Helaas geeft
>> apachectl hier geen foutcode op. :-{
>
> En wat staat er voor StartServers, ServerLimit, enz? Die moet je
> vermenigvuldigen met de Thread waardes he...

Kan er op het ogenblik niet bij, maar ik zal er eens naar kijken.


>> Bij mijn hosting provider kan ik waarschijnlijk niet meer dan een
>> stuk
>> of zes threads aan. (Een thread heeft 8MB stack-size en ik heb 100
>> MB
>> intern geheugen. En er moeten natuurlijk ook wat processen draaien.)
>
> 100MB is wel belachelijk klein.
> Een beetje mysql server wordt al snel 50-100MB groot.

Zal ik een balletje over opgooien. Ik heb zeker MySQL nodig.


> Overigens, hoe kom je aan dat getal van 8MB stack-size per thread?
> En is die dan al direct gealloceerd?

Gaf mijn provider aan. Waarschijnlijk wordt dat meteen gealloceerd,
want bij opstarten van Apache werdt de Apache meteen getermineerd
vanwege een tekort aan geheugen.


>> Is dat genoeg voor een site die -nog- niet veel wordt benaderd? En
>> hoe
>> bepaal ik dat er meer threads zouden moeten kunnen worden gecreeerd?
>
> Ik zou 2 servers starten (StartServer 2 dus), en dan zoveel threads
> als
> past in geheugen (ThreadsperChild); dus langzaam opvoeren. Zie verder
> http://httpd.apache.org/docs/2.0/mod/mpm_common.html#serverlimit
> en zo...

Ik zal er eens mee gaan spelen.





More information about the Linux mailing list