Keep ALive for backend

Kostya Alexandrov koticka at mail.ru
Fri Nov 9 11:15:22 MSK 2007


Поможет. Основная беда это то что java.io очень медленно акцептает 
соединения.
Относительно сносно эту задачу решал mod_wl для апача, но там
1. нет сырцов и не полностью ясно как он работает, не всегда так как это 
описывает документация.
2. Apache не может держать даже 2000 Keep-Alive соединений. Ему для 
каждого нужен процесс/поток
в зависимости от worker/prefork. Точнее он впринципе их держит, но печально.

Максимальный беклог могу поставить 2000, больше игнорирует.

Igor Sysoev wrote:
> On Fri, Nov 09, 2007 at 10:44:00AM +0300, Kostya Alexandrov wrote:
>
>   
>> Много раз обсуждался вопрос реализации keep-alive для бэкенд сервера.
>> Хотел бы попросить еще раз о реализации.
>>
>> Суть проблемы.
>>
>> nginx используется как прокси для Weblogic 7 - довольно дремучая версия, 
>> с кучей проблем,
>> но пока от нее избавится не удается, legacy system.
>> Все работате очень хорошо, и в отличии от Apache2, nginx великолепно 
>> справляется с нагрузкой.
>>
>> Система устроена так, что клиенты запрашивают изменения каждые 2 
>> секунды, потому
>> даже 1000-1500 клиентов уже очень серьезно. На таких объемах начинает 
>> умирать сервлетный движок
>> weblogic. Переодически Connection Refused. Он не может accept новые 
>> соединения, увеличение backlog сильно не помогает. дальше увеличивать 
>> уже некуда. Так на 400-500 пользователях появился апач перед weblogic. 
>> На 1200 Apache сдался и не смог держать Keep-Alive.
>> Сейчас работает nginx. Проблем с загрузкой процессора, keep-alive etc 
>> нет, но проблема connection refused
>> осталась. Кроме запроса обновлений клиенты послыют другие команды, при 
>> 1500 клинтов примено 2000-2200 http запросов в секунду.
>>
>> Если бы можно было как то лимимитировать количество одновременных 
>> запросов к бекенду и держать
>> keep-alive с бекендом, то было бы очень здорово, или хотябы держать 
>> keep-alive с бекендом.
>>
>> Есть идея писать свой fast-cgi, но мало опыта, заняты разработкой другой 
>> системы коммуникаций, но
>> количество клиентов увеличивается.
>>     
>
> Я не вижу, как keep-alive поможет существенно улучшить эту ситуацию.
> Если поставить большой backlog - например, 20,000, то соединения от nginx'а
> будут в нём накапливаться и жить максимум до 75 секунд. Эту будет
> близко к ограничению соединий с таймаутом 75 секунд.
>
>
>   





More information about the nginx-ru mailing list