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