pselect

Igor Sysoev is at rambler-co.ru
Tue Mar 21 16:18:16 MSK 2006


On Tue, 21 Mar 2006, Evgeny Stepanischev wrote:

>>>>> Игор,  может  интересно  будет, в новом ядре Linux 2.6.16 появились
>>>>> системные  вызовы  pselect/ppoll,  я  не  читал  для чего это, лишь
>>>>> увидел краем глаза про обработку событий. Даю линк:
>>>>>
>>>>> http://lwn.net/Articles/164887/
>>>
>>>> pselect() и ppoll() позволяют лишь синхронизировать обработку файловых
>>>> дескрипторов и сигналов. Масштабируемости они не добавляют. Единственное
>>>> место, где их можно использовать в nginx'е - это мастер-процесс, но
>>>> там сейчас используется sigsuspend() как общий знаменатель для всех
>>>> платформ.
>>>
>>> А что скажешь поводу вызова splice как замены sendfile?
>
>> Насколько я знаю, splice() ещё не вошёл в ядро. Его, возможно, можно
>> будет использовать в imap прокси. Замена sendfile()а на splice() для
>> дисковых операций - шило на мыло.
>
> Да, похоже, не вошло ещё. Кстати, по ссылке в комментариях есть:
>
> Using  sendfile()  is  just  a shortcut for read() followed by write()
> with  the  same  buffer  and length; it avoids copying into and out of
> userspace.  The  difference  with  splice()  is  that  the reading and
> writing  will  happen  automatically  as  data  becomes available, not
> requiring  userspace  to  perform  additional  system  calls,  need to
> determine optimal buffer sizes, etc.

Ещё не понятно, как splice() будет вести себя с неблокирющимися сокетами.


Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list