Keep ALive for backend
Kostya Alexandrov
koticka at mail.ru
Fri Nov 9 13:46:33 MSK 2007
Ну так веся конитель только потому что "юзать java.io смерти подобно... "
Алексей, Вы переходите в более философский вопрос.
Сам посебе такой метод обслуживания клиентов (http запрос каждые 2 сек)
является
полным идиотизмом, как и само использование weblogic для нашего вида
задач. Внезависимости от нативные либо бинарные библиотеки используются.
Ни nio, ни нативный конектор (Вы говорите про APR к токату) тут
применить влоб нельзя, иначе бы уже применили. Как раз сейчас и делаем
"свой http" на apache mina. Но это тоже временное решение.
В любом случае, мне кажется, что какой бы нибыл бекенд, конекты лучше
всего пулировать,
и если есть возможность иметь определенное количество persistent
соединений, то это будет
очень востребовано. Ни каждый бекенд может выдержать резкий наплыв запросов.
Например случай с базой данных, если бекенд формирует какие либо отчеты
и т.п. и по какой либо
причине не может обойтись фиксировааным пулом. Абстрактно ситуация может
быть такой:
- 10 активных запросов, каждый работает 1 сек.
- 50 - каждый работает 2 секунды
- 100 каждый работает по 5 минут. Ресурсы закончились, дикая конкуренция
за io и процессор приемущественно занят переключением контекста....
В этом случае выгоднее иметь очередь и только 50 исполняющихся
одновременно запросов.
Тоже самое может касаться и бекенда на php, jsp....
6 беременных женщин за месяц не рожают :)
Alexey Rymonin wrote:
> Hello Kostya,
>
> Friday, November 9, 2007, 11:15:22 AM, you wrote:
>
>
>> Поможет. Основная беда это то что java.io очень медленно акцептает
>> соединения.
>>
>
> Для такого кол-ва соединений юзать java.io смерти подобно...
> как минимум надо юзать что-нить из nio (во всяком под соляркой можно
> напрямую /dev/poll заюзать)... А вообще надо нативные библы
> подключать. Не смогу подсказать как это сделать для веблоджика,
> подключение нативных либ к томкату под солярой, сразу его переводит в
> использование eventports...
>
>
>> Относительно сносно эту задачу решал mod_wl для апача, но там
>> 1. нет сырцов и не полностью ясно как он работает, не всегда так как это
>> описывает документация.
>> 2. Apache не может держать даже 2000 Keep-Alive соединений. Ему для
>> каждого нужен процесс/поток
>> в зависимости от worker/prefork. Точнее он впринципе их держит, но печально.
>>
>
>
>> Максимальный беклог могу поставить 2000, больше игнорирует.
>>
>
>
>
More information about the nginx-ru
mailing list