[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: lsof en ulimit



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 100

Dit 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


Reply to: