ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re[2]: nginx-0.1.18



On Wed, 9 Feb 2005, Alexander Popkov wrote:

Wednesday, February 9, 2005, 6:27:10 PM, you wrote:
IS> devpoll_changes - максимальное число событий, которые можно записать
IS> в /dev/poll за один раз.

IS> devpoll_events - максимальное число событий, которые можно получить.
IS> из /dev/poll за один раз.

А если в данный момент больше чем devpoll_changes сокета ожидающих события?
Что тогда будет делать nginx?

И зачем разнесено на 2 параметра, changes и events?
По идее ведь это одно и тоже число.

Это разные числа.

/dev/poll в nginx работает так: nginx получает из ядра N событий,
N < devpoll_events. По мере обработки этих событий nginx хочет добавить
или удалить события, все эти изменения (число M) записываются в массив,
размер которого не больше devpoll_changes. Если M стало равно
devpoll_changes, то делается write(/dev/poll) и эти изменений передаются.
в ядро, а массив начинает заполняться с начала. После того, как nginx
обработает N полученных значений, то он идёт за новыми. Перед этим
он пишет в ядро (write(/dev/poll)) всё, что накопилось в массиве изменений.
После этого можно спрашивыать у ядра новые события: ioctl(DP_POLL).

Если у готовых событий больше, чем devpoll_events, то придётся делать
больше сисколлов для получения событий.


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




 




Copyright © Lexa Software, 1996-2009.