Добрый день, всем! :)
> > > Мне уже Игорь отвечал здесь, что необходимо в моей ситуации ставить
флаг
> > > MP=H
> > >
> > > Вчера поставид этот флаг
> > >
> > > AccelPass / http://127.0.0.1/ [PH,MC=75,MW=200,MP=H]
> > >
> > > Перезапустил фронтенд даже с остановкой и запуском. Но ночью опять на
> > > бекенде была ошибка:
> > > "server reached MaxClients setting ..."
> > >
> > > На бекенде стоит:
> > >
> > > MaxClients 160
> > >
> > > то есть несмотря на ограничение в 75 соединений, у меня было
фронтендом
> > > сделано более 160... Вся остальая конфигурация описана ниже.
> >
> > Научные исследования показали, что флаг MP вместе с PH работает
неправильно,
> > но ограничивать соединения в данном случае должен. Будем исправлять.
> >
> > Почему же мы не видим ограничения в данном случае ? Я подозреваю
последнюю
> > число 35 в AccelBusyLock. Дело в том, что по истечении этого времени
> > mod_accel закрывает соединение к бэкенду и возвращает ошибку 503.
> > Бэкенд узнает о том, что ему закрыли соединение только после того, как
> > попробует почитать из него или записать в него, что видимо когда-то
случается,
> > но не слишком скоро.
> >
> > Рекомендуется попробовать следущее:
> >
> > AccelPass / http://127.0.0.1/ [PH,MC=75,MW=200,MP=H]
> > AccelBusyLock 25 30 6000
>
> Короче, всё, что я нагнал выше, проблему не решит.
> Максимальное время ожидания в бизилоке увеличить не помешает,
> но прежде всего нужно увеличить AccelTimeout минут до 10.
Сделал я правки конфига, но AccelTimeout поставил не в 10 минут пока, а в 70
секунд (просто в доке написано что более 75 секунд смысла ставить не имеет).
У меня очень большие сомнения, что мои скрипты задерживаются на такое время.
То есть итоговая конфигурация получилась такой:
<IfModule mod_accel.c>
AccelBkRcvBuffSize 100
AccelCacheRoot proxy 1 1 noauto
AccelPass / http://127.0.0.1/ [PH,MC=75,MW=300,MP=H]
AccelSetXRealIP on
AccelPassCookie on
AccelMaxStale 40
AccelTimeout 70
AccelBusyLock 25 30 60
AccelDefaultExpire "24 hours"
</IfModule>
И далее два виртуала, тока с отличием тем, что у одного логи пишутся, у
другого нет.
<VirtualHost xx.xx.xx.xx:*>
ServerName www.domain1.com
...
</VirtualHost>
<VirtualHost xx.xx.xx.xx:*>
ServerName www.domain2.com
SelverAlias *
...
</VirtualHost>
Но опять наступил момент, когда MaxClients настигло 160. Причем в норме
обычно при большой загрузке 7-10 бекендов, но вдруг наступает момент за 1-2
минуты, когда их становится 160 и наступает лимит MaxClients... В это время
сервак 10 минут колошматит (бекенд медленно снижается до 50 бекендов за 10
минут) и все работает дальше. Я подозреваю, что виноваты мои скрипты, и что
в них происходят задержки с базой MySQL (локировок там нет), но пока яных
ошибок не нашел.
Очень важная думаю деталь.
В момент такого пика вот как развивались события:
Sat Jun 22 09:40:01 MSD 2002
amount apache_new: 11
amount mysqld: 56
amount accel: 997
Sat Jun 22 09:42:01 MSD 2002
amount apache_new: 148
amount mysqld: 242
amount accel: 935
Sat Jun 22 09:44:04 MSD 2002
amount apache_new: 160
amount mysqld: 285
amount accel: 881
Эти вещи зафиксировал мой скрипт. Что очень странно - резко возросло
количество бекенд-процессов, но почти неизменным и даже уменьшилось кол-во
фронтендов. Я говорю это к тому, что у меня стоит MW=300, то есть в такой
ситуации по идее должно фронтендов быть на 300 как минимум больше. Однако
этого нет. Поэтому у меня есть сомнения, что BusyLock-и не ограничивают как
надо в данном конфиге.
То есть проблема осталась. Я очень склоняюсь к тому, что виноваты мои
скрипты, но что-то мне подсказывает, что и фронтенд не очень то и
ограничивает бекенд 75-ю соединениями. Но это мои догадки пока что...
У меня
Linux version 2.4.9-31 (bhcompile@daffy.perf.redhat.com) (gcc version 2.96
20000731 (Red Hat Linux 7.1 2.96-98)) #1 Tue Feb 26 07:11:02 EST 2002
1Gb RAB, IDE HDD
Бекенд:
Apache/1.3.23 (Unix) PHP/4.2.1 mod_layout/3.0.3 mod_perl/1.26 rus/PL30.11
Фронтенд:
Apache/1.3.23 (Unix) mod_deflate/1.0.12 mod_accel/1.0.19
Также, когда делаю тесты к бекенду в момент когда загрузка сервера близка к
той, что сбоит, через telnet:
telnet localhost 80
HEAD / HTTP/1.0
Host: www.domain1.com
То время отклика обычно 1-2 секунды. Все запросы одинаковы, локировок в базу
нет. То есть пока даже не знаю, где проблема - то ли обвал происходит от
того, что фронтенд не ограничивает, то ли скрипты у меня.
>
> Игорь Сысоев
> http://sysoev.ru
>
Алексей
=============================================================================
= Apache-Talk@lists.lexa.ru mailing list =
Mail "unsubscribe apache-talk" to majordomo@lists.lexa.ru if you want to quit.
= Archive avaliable at http://www.lexa.ru/apache-talk =