On Monday 09 June 2008 10:26:42 Peter Pentchev wrote: > On Mon, Jun 09, 2008 at 10:11:17AM +0300, Marian Marinov wrote: > > On Monday 09 June 2008 09:18:06 Danail Petrov wrote: > > > Marian Marinov wrote: > > > > Много е вероятно apache-а ти да е бил рестартиран с много нисък лимит > > > > за opened files. > > > > > > > > напиши ulimit -a виж лимита с които си в момента след което > > > > рестартирай apache-a. > > > > > > Това с потребителя на apache обаче трябва да го напишеш. > > > > Грешка, трябва да го напише на console-та от която се стартира > > apache-а(от root). Ако го направи от nobody няма да свърши никаква > > работа тъй като apache не слага RLIMIT_OFILE. Дефакто ситуацята е > > следната, ulimit e команда на bash и bash налага лимита за maximum > > opened files. След като се стартра apache-а от root тези лимити са > > наложени за процеса баща и всички негови деца ги онаследяват. Съответно > > ако детето не изпълнява bash за да изпълни скрипт-а или ако не сетва > > RLIMIT_OFILE то лимитите остават тези с които е бил стартиран от root, > > което е и най-вероятният проблем. > > А всъщност Данаил е прав и това ulimit -a е най-добре да бъде изпълнено > в CGI скрипт, пуснат точно от този Apache, който прави проблеми :) > > Мариане, не можеш твърдо да кажеш, че Apache не слага RLIMIT_OFILE; > съвсем не можеш да бъдеш сигурен точно кой и как е конфигурирал точно > този Apache, с който човекът има проблем. Аз на четири машини в един и > същи мрежови сегмент имам четири инсталации на Apache, конфигурирани по > съвършено различен начин, и два от тях ги стартирам през допълнителни > скриптове, които поставят ограничения, които стандартният конфигурационен > файл на Apache не поставя :) И това съвсем стандартно, през > /etc/apache2/envvars - HTTPD='/usr/sbin/neshto-si-tam /usr/sbin/apache2' > > Да, и при мен никой от уебсървърите няма ограничение за брой отворени > файлове, но не можеш да си сигурен, че някой друг не е конфигурирал своя > уебсървър така. > > Поздрави, > Петър
1. Сигурен съм че, Apache не слага RLIMIT_OFILE тъй като никъде в кода на сървъра няма подобно нещо. 2. Ако сървъра е с mod_php RLIMIT_OFILE се взима от shell-а стартрал apache-а. 3. Ако сървъра изпълнява PHP-тата като CGI-ки то тогава трябва да се погледне лимита който е сложен на всеки новостартиран shell на машната. 99.9% сигурен съм, че няма отделен лимит само за този потребител на машина и в такъв случай остават само стандартните лимити наложени в /etc/bashrc, /etc/profile или /etc/profile.d в зависимост от дистрибуцията. 4. Някои дистрибуции имат в скриптовете за стартиране на apache сложени лимити и това също може да се провери. Мариян _______________________________________________ Lug-bg mailing list [email protected] http://linux-bulgaria.org/mailman/listinfo/lug-bg
