fastcgi performance at 10K

Denis F. Latypoff denis at gostats.ru
Wed Apr 15 17:25:53 MSD 2009


Hello Konstantin,

Wednesday, April 15, 2009, 7:47:02 PM, you wrote:

> Denis F. Latypoff wrote:
>> Hello Maxim,
>>
>> Wednesday, April 15, 2009, 6:35:09 PM, you wrote:
>>   
>>> On Wed, Apr 15, 2009 at 12:55:53PM +0300, Alexander Dolgarev wrote
>>>> В спеке FastCGI указано, что соединения между веб-сервером и
>>>> fastcgi-сервером могут быть постоянными, при этом nginx в
>>>> FCGI_BEGIN_REQUEST не указывает флаг FCGI_KEEP_CONN, в результате чего
>>>> fastcgi-сервер закрывает соединение после ответа.
>>>> Существует ли возможность в nginx делать соединения с fastcgi-сервером
>>>> постоянными или это впринципе не реализовано?
>>>>
>>>> Я так понимаю, что при тысячах запросов от клиентов nginx делает
>>>> тысячи попыток соединиться с fastcgi-сервером (1 запрос = 1 соединение
>>>> к fastcgi), которому приходится разгребать все эти соединения, а чаще
>>>> всего просто получаем ECONNREFUSED, не было бы лучше
>>>> мультиплексировать все запросы по нескольким постоянным соединениям?
>>>> Подскажите, как это сделать, если это сделать нельзя, то планируется
>>>> ли реализация такого поведения в будущем?
>>>>       
>>
>>   
>>> У меня есть работающий прототип поддержки keepalive для fastcgi.  
>>> Если очень хочется потестировать - могу поделиться патчами.
>>>     
>>
>> О! Раз пошла такая пьянка, то можно мне патчик? У меня есть самописный
>> сервер, разговаривающий по протоколу FastCGI (it uses libev). Я бы его
>> научил keepalive'у.
>>
>>   
> Если не секрет, то какие задачи у сервера и какие библиотеки использовали?

Задача - получить запрос от клиента в формате JSON, распарсить,
сходить в MySQL (собственный асинхронный коннектор, правда без
поддержки prepared statements), срендерить JSON, отдать клиенту.

Библиотеки - libev (http://software.schmorp.de/pkg/libev.html)
             JSON parser (http://fara.cs.uni-potsdam.de/~jsg/json_parser/)
             JSON render (свой)
             mpool (http://256.com/sources/mpool/)

> Сейчас просто занимаюсь разработкой чат-демона (наподобие voodoo
> chat), но опыта мало, а примеров в сети не так много нашел.

А как же
http://3.rdrail.net/blog/libevent-webserver-in-40-lines-of-c/
? 

-- 
Best regards,
 Denis                            mailto:denis at gostats.ru






More information about the nginx-ru mailing list