Keep ALive for backend

Igor Sysoev is at rambler-co.ru
Fri Nov 9 10:58:51 MSK 2007


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 секунд.


-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list