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.
|