Acept systemd.socket

Vasiliy Tolstov v.tolstov на selfip.ru
Ср Мар 16 05:36:50 UTC 2016


16 марта 2016 г. 2:35 пользователь "S.A.N" <nginx-forum at forum.nginx.org>
написал:
>
> Evgeniy Berdnikov Wrote:
> -------------------------------------------------------
> > On Tue, Mar 15, 2016 at 11:39:12AM -0400, S.A.N wrote:
> > > Evgeniy Berdnikov Wrote:
> > > -------------------------------------------------------
> > > > On Tue, Mar 15, 2016 at 10:33:10AM -0400, S.A.N wrote:
> > > > > Наш use case простой, нужно чтобы на ранней стадии загрузки OS,
> > > > нужные порты
> > > > > могли принимать конекты, systemd.socket идеальный вариант, мы
> > его
> > > > используем
> > > > > для наших бекендов.
> > > >
> > > >  Зачем принимать коннекты, если их некому обрабатывать? Такой use
> > case
> > > >  практически эквивалентен простым дропам syn'ов -- отличие будет
> > лишь
> > > >  в более долгом разгоне после старта сервера, зато нагрузка на
> > сервер
> > > >  будет подниматься плавнее. Т.е. я бы просто поставил где-нибудь
> > на
> > > >  первых этапах загрузки iptables -P INPUT DROP и всё, никаких
> > плясок
> > > >  вокруг сокетной инициализации не нужно.
> > > > --
> > ...
> > > Nginx загружается намного позже ядра, наша задача - пока Nginx не
> > > загрузился, не терять, не дропать пакеты, а сделать очередь, которую
> > > обработает Nginx когда запустится.
> >
> >  Вы, вероятно, не поняли. Коннекции не теряются (вообще, не терять
> >  коннекции и не дропать пакеты -- это разные задачи, вторая для tcp
> >  не имеет большого смысла).
> >
> >  Есть смысл не режектить коннекции пока сервер не запустится, чтобы
> >  клиенты не получали отлуп. Ваше решение в этом плане плохо тем, что
> >  есть интервал времени между подъёмом сетевых интерфейсов и стартом
> >  сервера, когда коннекции режектятся и клиенты получают отказ.
> >  Использование systemd для сокетной инициализации от этого не спасает.
> >  Если же сервис закрыть пакетным фильтром (на DROP) до подъёма
> > интерфейса,
> >  где-нибудь в pre-up, и открыть после старта сервера, то никаких
> >  режектов не будет.
> > --
> >  Eugene Berdnikov
> >
> > _______________________________________________
> > nginx-ru mailing list
> > nginx-ru at nginx.org
> > http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
> Возможно вы правы, но мне как разработчику бекенда, приятней и понятней
> настраивать директивы systemd.socket.
>
> Наши бекенд демоны запускает systemd.socket, он же и следит за ними на
> протяжении их жизни.
> Nginx по сути такой же демон, но стартуют при загрузки OS, я замерял время
> когда доступный systemd.socket и когда Nginx, в результате Nginx готов к
> принятию конектов на ~700 ms позже, по сравнению с systemd.socket.
> Это не критично и OS перегружается редко, но зачем терять эти ~700 ms,
> что-то настраивать в iptables можно, но зачем когда есть systemd.
>
> Nginx, станет только лучше если реализует прием сокета от systemd.socket.

Так а чем плох вариант, дропать при старте системы все,и сделать
сервис,который после старта nginx откроет порты? Мне кажется это более
универсальным вариантом.
>
> Posted at Nginx Forum:
https://forum.nginx.org/read.php?21,265330,265369#msg-265369
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20160316/164ce763/attachment.html>


Подробная информация о списке рассылки nginx-ru