The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Предельное количество виртуальных сайтов в Apache, !*! MK, 03-Фев-04, 23:36  [смотреть все]
Пожалуйста подскажите, сколько виртуальных сайтов
может держать Apache 2. У меня он начал сбоить на
500 сайтах - отказывается запускаться.
И как с этим бороться? Зпускать второй экземпляр или
есть какие то настройки?
  • Предельное количество виртуальных сайтов в Apache, !*! solotony, 14:25 , 04-Фев-04 (1)
    Я где-то читал о 50000.

    >Пожалуйста подскажите, сколько виртуальных сайтов
    >может держать Apache 2. У меня он начал сбоить на
    >500 сайтах - отказывается запускаться.

    Может просто не может открыть много файлов?
    Надо делать общий лог.
    Что пишет при отказе?

    >И как с этим бороться? Зпускать второй экземпляр или
    >есть какие то настройки?


    • Предельное количество виртуальных сайтов в Apache, !*! MK, 20:43 , 04-Фев-04 (2)
      Пишет так:
      [warn] new file descriptor 1024 is too large; you probably need to rebuild Apache with a larger FD_SETSIZE (currently 1024).

      Это ядро не дает открыть или у Apache есть своя настройка? если дело в ядре (Linux 2.4.20), то потянет больше дескрипторов?

      • Предельное количество виртуальных сайтов в Apache, !*! solotony, 21:07 , 04-Фев-04 (3)
        Ядро.

        просто изменить в текущей сессии - комманда ulimit (от рута)
        или патчить апача - разбирайся с rlimit

        (я не менял таким образом число файлов, но наверно должно помочь)

        • Предельное количество виртуальных сайтов в Apache, !*! MK, 21:18 , 04-Фев-04 (4)
          при старте апача я вставила ulimit -n 3000  и тогда пропала ошибка too many open files (она была до той, которую я описала)

          без ulimit он просто вываливался уже при этом количестве файлов...

          • Предельное количество виртуальных сайтов в Apache, !*! solotony, 21:31 , 04-Фев-04 (5)
            Да, не прав был, признаю. Это огграниечние ничего
            общего к rlimit не имеет.

            Стало интересно даже :).

            Не пробовала перекомпилировать, как советует лог апача?

            • Предельное количество виртуальных сайтов в Apache, !*! MK, 23:05 , 04-Фев-04 (6)
              >Не пробовала перекомпилировать, как советует лог апача?

              да, может попробую, только пока не ясно как это сделать: не нашла пока директивы при компиляции подходящей... :( у разработчиков тоже что-то не написано про такое... буду искать.


            • Предельное количество виртуальных сайтов в Apache, !*! uldus, 10:08 , 05-Фев-04 (7)
              >Не пробовала перекомпилировать, как советует лог апача?

              Если для каждого виртуального сервера используется своя пара access/error логов, то дело в этом. При 500 клиентах, апач будет держать только для VirtualHost 1000 открытых файлов. Делай один общий access/error лог.

              Или в начало apachectl (не рекомендую, лучше один лог) добавь ulimit -n 3000, до этого поэксперементируй, запусти эту команду в sh и посмотри по ulimit -a изменились ли параметры, в зависимости от ОС может потребоваться пересобрать или тюнить ядро.

              • Предельное количество виртуальных сайтов в Apache, !*! maryl, 11:50 , 05-Фев-04 (8)
                >Делай один общий access/error лог.
                это неудобно пользователям, каждому нужны свои логи.

                >Или в начало apachectl (не рекомендую, лучше один лог) добавь ulimit -n
                >3000
                у меня в старте апача стоит ulimit -n 3000
                до того, как я поставила ulimit - была ошибка too many open files, теперь ее нет - а  есть [warn] new file descriptor 1024 is too large; you probably need to rebuild Apache with a larger FD_SETSIZE (currently 1024).

                как будто теперь ядро разрешает - т.е. ошибка для апача не внешняя,- а сам апач не позволяет открыть дескриптор больший 1024. мне непонятно как апач пересобрать с большим кол-во дескрипторов (в логе апач это советует)


                • Предельное количество виртуальных сайтов в Apache, !*! uldus, 22:10 , 05-Фев-04 (11)
                  > >Делай один общий access/error лог.
                  >это неудобно пользователям, каждому нужны свои логи.

                  Дай пользователям доступ к cgi-скрипту который ведерет из одного большого лога только относящуюся к текущему пользователю инфромацию. Или раз день распределяй из этого файла логи по директориям пользователя. В первом случае клиенты смогут в realtime смотреть errorlog, во втором запускать webanalyzer.

                  >у меня в старте апача стоит ulimit -n 3000
                  >до того, как я поставила ulimit - была ошибка too many open
                  >files, теперь ее нет - а  есть [warn] new file
                  >descriptor 1024 is too large;
                  >you probably need to rebuild Apache
                  >with a larger FD_SETSIZE (currently 1024).

                  Пересобири апач указав -DFD_SETSIZE=3000 при сборке

                  Перед этим нужнл пересобрать ядро изменив размер fd_set.
                  В linux это делается изменением значения __FD_SETSIZE в include/linux/posix_types.h:
                  #define __FD_SETSIZE    1024

              • Предельное количество виртуальных сайтов в Apache, !*! solotony, 12:28 , 05-Фев-04 (9)
                >Если для каждого виртуального сервера используется своя пара access/error логов, то дело
                >в этом. При 500 клиентах, апач будет держать только для VirtualHost
                >1000 открытых файлов. Делай один общий access/error лог.
                  
                вот это правильное решение. По крайней мере на многих крупных серверах делают именно так.

                >Или в начало apachectl (не рекомендую, лучше один лог) добавь ulimit -n
                >3000, до этого поэксперементируй, запусти эту команду в sh и посмотри
                >по ulimit -a изменились ли параметры, в зависимости от ОС может
                >потребоваться пересобрать или тюнить ядро.

                  Это ограничение не имеет ничего общего к лимитам системы, выставляемым через rlimits (комманда ulimit). Это ограничение на вызов ядра select, который не принимает дескриптор с номером более 1023.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру