On 04/12/2010 08:01 PM, Winfried Tilanus wrote:
On 04/12/2010 Sjoerd Hardeman wrote:Geldt ulimit niet per proces? Meestal forkt Apache verschillende processen, die elk binnen de limit van 1024 moeten blijven. Dat is tenminste wat ik dacht.uit `man limits.conf`: Also, please note that all limit settings are set per login. They are not global, nor are they permanent; existing only for the duration of the session. Maar wat betekent dat voor apache2 (mpm-prefork)?
Dat stuk van de manpage gaat volgens mij over hoe deze settings ingesteld worden, niet over per wat ze gelden. Dus, ik kan twee keer inloggen en deze limiet per login op een andere waarde zetten. Vervolgens betekent die waarde dat ik per _proces_ een x-aantal files kan openen.
Het gaat hierbij overigens om het aantal file descriptors, dus libraries tellen niet mee (terwijl die wel in lsof verschijnen). Wel tellen stdin, stderr en stdout mee.
Om dit uit te zoeken heb ik trouwens het volgende ruby-script gebruikt: a = [] 1021.times { a << File.open("foo.txt") } sleep 100Dit kan zonder problemen meermalen tegelijk gedraaid worden. Bij 1022 keer openen krijg ik een melding 'too many open files'.
Voor apache2 betekent dit alles dat inderdaad elk proces 1024 files mag openen. Groet, -- Matijs