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