Keep ALive for backend

Igor Sysoev is at rambler-co.ru
Fri Nov 9 11:38:43 MSK 2007


On Fri, Nov 09, 2007 at 11:15:22AM +0300, Kostya Alexandrov wrote:

> Поможет. Основная беда это то что java.io очень медленно акцептает 
> соединения.

А насколько медленно - сколько запросов в секунду он может обработать
с ответом типа "hello world!" ?

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

А как работала схема с Апачём - где использовался keep-alive -
с клиентом и бэкендом или только с бэкендом ?

> Максимальный беклог могу поставить 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 секунд.
> >
> >
> >  
> 

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





More information about the nginx-ru mailing list