ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: fastcgi performance at 10K


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: fastcgi performance at 10K
  • From: Peter Leonov <gojpeg@xxxxxxxxx>
  • Date: Wed, 15 Apr 2009 21:50:21 +0400
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:from:to :in-reply-to:content-type:content-transfer-encoding:mime-version :subject:date:references:x-mailer; bh=DCkuGHjch7VW3azLbQJR2E5gkOAFUennuT2kEL191L0=; b=F0d9F/roMGrRUHi0udclLaG/WIMRm7ua73fS95vRWQMGGrc1Kkm5ybV9r//Wy1g8AT pg17GbMgjwUQtV3ne8Sx8TDSfttG/pGvojMrXHxvSjrj+RTQuJbfEOuzsxNrm6wX9wbt oQLqmpF5mRQ4BLVwMMwdh2sRdlozoVFPLJ33I=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:from:to:in-reply-to:content-type :content-transfer-encoding:mime-version:subject:date:references :x-mailer; b=k/TI1phJWUMcCEGQpp+bv8WhGvjsWeYelwlR+lx9d0GSWR6heQE1jpvjGbSK9B6RI7 6j2PBWGkSZWQW057eQhBeGCVVciYzxL+0hbLa81F/GXV9O2mbt2E4lpLrDxKxEFXE0Zq S7KY/zwQnoSEHNKohyarYmB2E3OVzs1v9vl/0=
  • In-reply-to: <20090415113509.GD25999@xxxxxxxxxx>
  • References: <fb7e57860904150255u77b79890jac1f769a47daf9e4@xxxxxxxxxxxxxx> <20090415113509.GD25999@xxxxxxxxxx>


On 15.04.2009, at 15:35, Maxim Dounin wrote:

Hello!

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 запросах
это не приведёт к заметному ускорению, и описанные проблемы скорее
всего не вылечит (а может быть и усугубит).

Keepalive с бекендом нужен в первую очередь в ситуации когда сама
работа бекенда сравнима с затратами на установление соединения
(очень маленькие ответы), либо когда установление соединения в
бекенде стоит очень дорого (плохой, негодный бекенд).

Maxim Dounin


Мне тоже очень бы пригодился кипэлайв.
Задачи сходные с перечисленными: быстрая, основанная на событиях отдвавалка JSON из памяти или берклиевской базы. Просто отдавать из мемкеша не выйдет, так как надо выполнять ряд проверок.

Сейчас решено с помощью встраивания всего функционала в nginx, что тоже интересно, но, прямо скажу, трудновато ;) А так построил бы своего микродемона и не боялся бы обрушать nginx.

 




Copyright © Lexa Software, 1996-2009.