Welcome! Log In Create A New Profile

Advanced

Re: NXWEB и nginx

Denis F. Latypoff
December 05, 2011 08:04PM
06.12.2011, 02:32, "Yaroslav" <yarosla@gmail.com>:
> 2011/12/5 Igor Sysoev <igor@sysoev.ru>
>> Не факт, что edge triggered в том чистом виде, как он реализован в epoll
>> лучше level triggered. Например, если на момент добавления сокета в epoll
>> данные уже есть в сокете, то edge triggered epoll про них не раскажет.
>> Приходится делать лишний read после добавления. Кроме того, есть и просто
>> ошибка реализации edge triggered, когда нужно делать read до получения
>> EAGAIN, иначе можно пропустить EOF.
>>
>> А вот EV_CLEAR в kqueue сделан явно с применением мозга.
> Автор libev тоже не очень лестно высказывается насчет epoll. В частности он пишет об ошибках в его работе:
>> The epoll mechanism deserves honorable mention as the most misdesigned of the more advanced event mechanisms: mere annoyances include silently dropping file descriptors, requiring a system call per change per file descriptor (and unnecessary guessing of parameters), problems with dup, returning before the timeout value, resulting in additional iterations (and only giving 5ms accuracy while select on the same platform gives 0.1ms) and so on. Epoll is also notoriously buggy - embedding epoll fds should work, but of course doesn't, and epoll just loves to report events for totally different file descriptors (even already closed ones, so one cannot even remove them from the set) than registered in the set (especially on SMP systems). Epoll also erroneously rounds down timeouts, but gives you no way to know when and by how much, so sometimes you have to busy-wait because epoll returns immediately despite a nonzero timeout. And last not least, it also refuses to work with some file descriptors which work perfectly fine with select (files, many character devices...).
> Хотелось бы узнать по Вашему опыту, такие проблемы действительно имеют место? Или может они исправлены в более свежих версиях ядра?
>

Да дело даже не в том, что еполл на каких-то ядрах недозапилен,
а в том, что libev by design таков, что не позволяет использовать
нестандартные фичи event-движков ядра. То есть если во фре,
например, можно узнать об EOF прямо из kqueue, то с libev на той
же фре - только через дополнительный read, который вернет -1
и установит errno в EAGAIN. libev использует только базовые
механизмы, в то время как nginx все прелести event-движков
с целью уменьшения кол-ва передергивания контекста.

--
br, Denis F. Latypoff.
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

NXWEB и nginx

Михаил Монашёв December 02, 2011 05:22AM

Re: NXWEB и nginx

Валентин Бартенев December 02, 2011 05:28AM

Re: NXWEB и nginx

Igor Sysoev December 02, 2011 05:30AM

Re[2]: NXWEB и nginx

Михаил Монашёв December 03, 2011 11:50AM

Re: Re[2]: NXWEB и nginx

Alexandr Gomoliako December 03, 2011 12:04PM

Re[4]: NXWEB и nginx

Михаил Монашёв December 03, 2011 01:20PM

Re: Re[2]: NXWEB и nginx

Valery Kholodkov December 04, 2011 05:48AM

Re: NXWEB и nginx

Andrey N. Oktyabrski December 04, 2011 06:24AM

Re: NXWEB и nginx

Valery Kholodkov December 04, 2011 08:50AM

Re: NXWEB и nginx

Andrey N. Oktyabrski December 04, 2011 12:52PM

Re[4]: NXWEB и nginx

Михаил Монашёв December 04, 2011 08:54AM

Re: Re[4]: NXWEB и nginx

Valery Kholodkov December 04, 2011 09:32AM

Re[6]: NXWEB и nginx

Михаил Монашёв December 04, 2011 09:44AM

Re: Re[6]: NXWEB и nginx

Valery Kholodkov December 04, 2011 11:40AM

Re: Re[6]: NXWEB и nginx

Alexandr Gomoliako December 04, 2011 11:48AM

Re[8]: NXWEB и nginx

Михаил Монашёв December 04, 2011 03:58PM

Re: NXWEB и nginx

Yaroslav December 04, 2011 04:20PM

Re: NXWEB и nginx

Denis F. Latypoff December 04, 2011 09:42AM

Re: NXWEB и nginx

Igor Sysoev December 05, 2011 04:16AM

Re: NXWEB и nginx

Yaroslav December 05, 2011 02:34PM

Re: NXWEB и nginx

Yaroslav December 05, 2011 03:52PM

Re: NXWEB и nginx

Oleksandr V. Typlyns'kyi December 05, 2011 03:58PM

Re: NXWEB и nginx

Alexandr Gomoliako December 05, 2011 04:02PM

Re: NXWEB и nginx

Yaroslav December 05, 2011 04:28PM

Re: NXWEB и nginx

Denis F. Latypoff December 05, 2011 08:04PM

Re: NXWEB и nginx

Yaroslav December 05, 2011 08:12PM

Re: NXWEB и nginx

Denis F. Latypoff December 05, 2011 08:24PM

Re: NXWEB и nginx

Alexandr Gomoliako December 05, 2011 08:42PM

Re: NXWEB и nginx

Yaroslav December 02, 2011 05:58AM

Re[2]: NXWEB и nginx

Михаил Монашёв December 02, 2011 07:24AM

Re[2]: NXWEB и nginx

Михаил Монашёв December 02, 2011 07:44AM

Re[2]: NXWEB nginx

Andrey Repin December 02, 2011 08:52AM

Re: Re[2]: NXWEB É nginx

Rush December 03, 2011 05:38AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 147
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready