<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: kqueue/kevent</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/8766.html</link>
    <description>Цитата из мана про EVFILT_READ:&lt;br&gt;Sockets which have previously been passed to listen() return when there is an incoming connection pending. data contains the size of the listen backlog.&lt;br&gt;&lt;br&gt;Вопрос: backlog может быть больше чем указано в параметре listen()?&lt;br&gt;</description>

<item>
    <title>kqueue/kevent (guest)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/8766.html#26</link>
    <pubDate>Fri, 11 Jun 2010 09:35:00 GMT</pubDate>
    <description>&amp;gt;с ДДосом боряться на уровне системы а не в реализациях клиент &amp;lt;-&amp;gt;серверных приложениях&lt;br&gt;&lt;br&gt;Я просто вам привел реальный пример таких ситуаций. &lt;br&gt;&lt;br&gt;&amp;gt;даже при ~100 коротких ДДОс &lt;br&gt;&amp;gt;мне не накладно (если алгоритм программы оптимизированый) пробежаться read, close, по некорректных &lt;br&gt;&amp;gt;запросах &lt;br&gt;&lt;br&gt;Они абсолютно корректны. Только медленные, соотвественно дропать таких клиентов не корректно. Причем не обязательно по вине клиента. Например при большой нагрузке в системе будет точно такое же поведение.&lt;br&gt;&lt;br&gt;&amp;gt;я не использую -&amp;gt;data&lt;br&gt;&amp;gt;я использую -&amp;gt;udata&lt;br&gt;&lt;br&gt;это теплое и мягкое.&lt;br&gt;data параметры/результаты фильтров&lt;br&gt;udata - пользовательская константа.&lt;br&gt;&lt;br&gt;&amp;gt;ок. вы меня пытаетесь убедить что в -&amp;gt;data возращаеться количество ожидающих listen ?&lt;br&gt;&amp;gt;что бы потом по этим while ( -&amp;gt;data --) accept пробежаться?&lt;br&gt;&lt;br&gt;Уже не пытаюсь)&lt;br&gt;Пытаюсь понять ваше утверждение, что вы делаете также не использую эту информацию.&lt;br&gt;</description>
</item>

<item>
    <title>kqueue/kevent (анонимус1)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/8766.html#25</link>
    <pubDate>Fri, 11 Jun 2010 08:11:40 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;&amp;gt;делается)&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Пардонте, но прибить гвоздями размер tcp window не возможно. &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;&amp;gt;но реальных ситуаций когда должны передаваться огромные данные &lt;br&gt;&amp;gt;&amp;gt;а начинают передаваться по байту &lt;br&gt;&amp;gt;&amp;gt;я никогда не сталкивался &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Эм... вы никогда не видели как медлено и печально DDOSят веб сервера? &lt;br&gt;&amp;gt;&lt;br&gt;&lt;br&gt;с ДДосом боряться на уровне системы а не в реализациях клиент &amp;lt;-&amp;gt;серверных приложениях&lt;br&gt;&lt;br&gt;даже при ~100 коротких ДДОс&lt;br&gt;мне не накладно (если алгоритм программы оптимизированый) пробежаться read, close, по некорректных запросах&lt;br&gt;далее это уже дело системы и администратора&lt;br&gt;&lt;br&gt;&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;&amp;gt;         а здесь уже &lt;br&gt;&amp;gt;&amp;gt;звать эту процедуру &lt;br&gt;&amp;gt;&amp;gt;         -&amp;gt;udata();&lt;br&gt;&amp;gt;&amp;gt;         которая и сделает &lt;br&gt;&amp;gt;&amp;gt;accept и остальное что надо, к примеру уже добавит &lt;br&gt;&amp;gt;&amp;gt;         дополнительные EV(ADD, some_recv,.... &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Да какая разница, зовете вы сискол напрямую или через обертку. Это детали &lt;br&gt;&amp;gt;реализации. &lt;br&gt;&amp;gt;Да и сложностей я тут не вижу. Вы все равно должны проверять eventlist&#091;i&#093;-&amp;gt;filter хотябы 1 раз &#091;а </description>
</item>

<item>
    <title>kqueue/kevent (guest)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/8766.html#24</link>
    <pubDate>Fri, 11 Jun 2010 05:53:22 GMT</pubDate>
    <description>&amp;gt;для этих целей настраиваеться tcp окно уже в самой системе(тюнинг системы вообще &lt;br&gt;&amp;gt;делается)&lt;br&gt;&lt;br&gt;Пардонте, но прибить гвоздями размер tcp window не возможно.&lt;br&gt;&lt;br&gt;&amp;gt;но реальных ситуаций когда должны передаваться огромные данные &lt;br&gt;&amp;gt;а начинают передаваться по байту &lt;br&gt;&amp;gt;я никогда не сталкивался &lt;br&gt;&lt;br&gt;Эм... вы никогда не видели как медлено и печально DDOSят веб сервера?&lt;br&gt;Но суть опять же не в этом, а в том что если сервер заранее знает сколько данных нужно получить, то он может использую эту возможность (NOTE_LOWAT) не тратить ресурсы на лишние вызовы read().&lt;br&gt;&lt;br&gt;&amp;gt;         зачем так усложнять? &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;         если в udata &lt;br&gt;&amp;gt;можно передать адресс процедуры еще на этапе EV(ADD, some_accept,.. &lt;br&gt;&amp;gt;         а здесь уже &lt;br&gt;&amp;gt;звать эту процедуру &lt;br&gt;&amp;gt;         -&amp;gt;udata();&lt;br&gt;&amp;gt;         которая и сделает &lt;br&gt;&amp;gt;accept и остальное что надо, к примеру уже добавит &lt;br&gt;&amp;gt;         дополнительные EV(ADD, some_recv,.... &lt;br&gt;&lt;br&gt;Да какая разница, зовете вы сискол напрямую или через обертку. Это детали реализации.&lt;br&gt;Да и сложностей я тут не вижу. Вы все равно</description>
</item>

<item>
    <title>kqueue/kevent (анонимус1)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/8766.html#23</link>
    <pubDate>Thu, 10 Jun 2010 22:12:21 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;&amp;gt;пока клинет не пришлет хотя бы что то &lt;br&gt;&amp;gt;&amp;gt;kevent не сработает, и выдаст таймаут по которому ожидает (в параметрах kevent) &lt;br&gt;&amp;gt;&amp;gt;на неблокирующих сокетах это колосальный профит &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Сузим рамки. Неблокирующиеся сокеты, TCP. &lt;br&gt;&amp;gt;Смотрите. по дефолту kevent будет дергаться на каждую порцию пакетов в рамках &lt;br&gt;&amp;gt;TCP таймаута. Т.е. в определенной ситуации kevent() будет нас дергать на &lt;br&gt;&amp;gt;каждый байт. &lt;br&gt;&amp;gt;Этот флаг позволяет задать минимум принятых данных при котором event считается сработавшим. &lt;br&gt;&amp;gt;&lt;br&gt;&lt;br&gt;для этих целей настраиваеться tcp окно уже в самой системе(тюнинг системы вообще делается)&lt;br&gt;но реальных ситуаций когда должны передаваться огромные данные&lt;br&gt;а начинают передаваться по байту&lt;br&gt;я никогда не сталкивался&lt;br&gt;&lt;br&gt;&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;&amp;gt;при неблокирующем сокете совсем другая логика &lt;br&gt;&amp;gt;&amp;gt;можно добавить в очередь kevent, 10000 сокетов и более (65536 лимит) &lt;br&gt;&amp;gt;&amp;gt;и обработать сразу в один присест не while () kevent, как вы &lt;br&gt;&amp;gt;&amp;gt;говорите &lt;br&gt;&amp;gt;&amp;gt;а while () data&#091;&#093; &lt;br&gt;&amp;gt;&amp;gt;что в двойне профит &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;вы так </description>
</item>

<item>
    <title>kqueue/kevent (guest)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/8766.html#22</link>
    <pubDate>Thu, 10 Jun 2010 20:38:12 GMT</pubDate>
    <description>&amp;gt;через вызов kevent(), а я &#091;да да и nginx) через for (j = 0; j&amp;lt;eventlist&#091;i&#093;; j++) accept(); &lt;br&gt;&lt;br&gt;Пора спать. следует читать for (j = 0; j&amp;lt;eventlist&#091;i&#093;-&amp;gt;data; j++) accept(); &lt;br&gt;</description>
</item>

<item>
    <title>kqueue/kevent (guest)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/8766.html#21</link>
    <pubDate>Thu, 10 Jun 2010 20:35:17 GMT</pubDate>
    <description>&amp;gt;не соглашусь с вами &lt;br&gt;&amp;gt;пока клинет не пришлет хотя бы что то &lt;br&gt;&amp;gt;kevent не сработает, и выдаст таймаут по которому ожидает (в параметрах kevent) &lt;br&gt;&amp;gt;на неблокирующих сокетах это колосальный профит &lt;br&gt;&lt;br&gt;Сузим рамки. Неблокирующиеся сокеты, TCP.&lt;br&gt;Смотрите. по дефолту kevent будет дергаться на каждую порцию пакетов в рамках TCP таймаута. Т.е. в определенной ситуации kevent() будет нас дергать на каждый байт.&lt;br&gt;Этот флаг позволяет задать минимум принятых данных при котором event считается сработавшим.&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt;при неблокирующем сокете совсем другая логика &lt;br&gt;&amp;gt;можно добавить в очередь kevent, 10000 сокетов и более (65536 лимит) &lt;br&gt;&amp;gt;и обработать сразу в один присест не while () kevent, как вы &lt;br&gt;&amp;gt;говорите &lt;br&gt;&amp;gt;а while () data&#091;&#093; &lt;br&gt;&amp;gt;что в двойне профит &lt;br&gt;&lt;br&gt;вы так и не поняли)&lt;br&gt;тут ваш код и любой другой не отличаются, реализация может быть любой но схема всегда одна:&lt;br&gt;for (;;) &#123;&lt;br&gt;  n = kevent(kq, *changelist, nchanges, *eventlist, nevents, *timeout);&lt;br&gt;  for (i = 0; i &amp;lt; n; i++) &#123;&lt;br&gt;    switch(eventlist&#091;i&#093;-&amp;gt;filter)&#123;&lt;br&gt;    ...&lt;br&gt;    ca</description>
</item>

<item>
    <title>kqueue/kevent (анонимус)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/8766.html#20</link>
    <pubDate>Thu, 10 Jun 2010 20:01:29 GMT</pubDate>
    <description>&amp;gt;&amp;gt;просто мы разговаривали о разных механизмах kevent &lt;br&gt;&amp;gt;&amp;gt;я не понял вашего, вы моего &lt;br&gt;&amp;gt;&amp;gt;но оба они присутсвуют в kevent &lt;br&gt;&amp;gt;&amp;gt;в моем механизме -&amp;gt;data не используется вообще&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Наверное зря, как раз там и даются интересные возможности. &lt;br&gt;&amp;gt;Например упомянутый вами NOTE_LOWAT позволяет не дергаться пока клиент не пришлет data &lt;br&gt;&amp;gt;байт. &lt;br&gt;&lt;br&gt;не соглашусь с вами&lt;br&gt;пока клинет не пришлет хотя бы что то&lt;br&gt;kevent не сработает, и выдаст таймаут по которому ожидает (в параметрах kevent)&lt;br&gt;на неблокирующих сокетах это колосальный профит&lt;br&gt;&lt;br&gt;&amp;gt;Или тот же accept(). Согласитесь что открутить accept() в цикле data раз &lt;br&gt;&amp;gt;выгодней чем тоже число акцептов по одному + передергивание kevent() на &lt;br&gt;&amp;gt;каждый в вашей модели. &lt;br&gt;&amp;gt;&lt;br&gt;&lt;br&gt;при неблокирующем сокете совсем другая логика&lt;br&gt;можно добавить в очередь kevent, 10000 сокетов и более (65536 лимит)&lt;br&gt;и обработать сразу в один присест не while () kevent, как вы говорите&lt;br&gt;а while () data&#091;&#093;&lt;br&gt;что в двойне профит&lt;br&gt;&lt;br&gt;&amp;gt;&amp;gt;и да, сокеты у вас блокирующие? &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Нет конечно. &lt;br&gt;&lt;br&gt;а ну тогда понятно&lt;br&gt;&lt;br&gt;&amp;gt;Кста</description>
</item>

<item>
    <title>kqueue/kevent (guest)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/8766.html#19</link>
    <pubDate>Thu, 10 Jun 2010 19:47:52 GMT</pubDate>
    <description>&amp;gt;просто мы разговаривали о разных механизмах kevent &lt;br&gt;&amp;gt;я не понял вашего, вы моего &lt;br&gt;&amp;gt;но оба они присутсвуют в kevent &lt;br&gt;&amp;gt;в моем механизме -&amp;gt;data не используется вообще&lt;br&gt;&lt;br&gt;Наверное зря, как раз там и даются интересные возможности.&lt;br&gt;Например упомянутый вами NOTE_LOWAT позволяет не дергаться пока клиент не пришлет data байт.&lt;br&gt;Или тот же accept(). Согласитесь что открутить accept() в цикле data раз выгодней чем тоже число акцептов по одному + передергивание kevent() на каждый в вашей модели.&lt;br&gt;&lt;br&gt;&amp;gt;и да, сокеты у вас блокирующие? &lt;br&gt;&lt;br&gt;Нет конечно.&lt;br&gt;Кстати на *BSD тоже повод для экономии сискола т.к. O_NONBLOCK наследуется от listen() сокета.&lt;br&gt;</description>
</item>

<item>
    <title>kqueue/kevent (анонимус)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/8766.html#18</link>
    <pubDate>Thu, 10 Jun 2010 19:39:47 GMT</pubDate>
    <description>&amp;gt;&amp;gt;смейтесь дальше) &lt;br&gt;&amp;gt;&amp;gt;тешите свое само любие? или повышаете ЧСВ? &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Помоему это пытались сделать вы за мой счет, но сели в лужу. &lt;br&gt;&amp;gt;&lt;br&gt;&lt;br&gt;да нет&lt;br&gt;просто мы разговаривали о разных механизмах kevent&lt;br&gt;я не понял вашего, вы моего&lt;br&gt;но оба они присутсвуют в kevent&lt;br&gt;в моем механизме -&amp;gt;data не используется вообще&lt;br&gt;&lt;br&gt;и да, сокеты у вас блокирующие?&lt;br&gt;&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;&amp;gt;/засим откланяюсь, теште себя сами &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Извините если обидел. &lt;br&gt;&lt;br&gt;)&lt;br&gt;</description>
</item>

</channel>
</rss>
