FreeBSD + Kqueue/Poll + Libevent
urri
nginx-forum на nginx.us
Пт Авг 19 11:44:26 UTC 2011
Alexandr Gomoliako Wrote:
-------------------------------------------------------
> Т.е. сервер ожидает данные, когда не
должен. Наверное где-то при
> обработке запроса что-то посчитало,
что надо больше данных для
> продолжения.
> Убедитесь, что правильно парсите
запрос. Создавайте подробные
> дебаг-логи, записывайте ктрейс
параллельно.
Сервер ожидает данные когда должен,
Libevent принимает подключение от Nginx,
отправляет сокет в Kqueue ожидать
появления данных для чтения, ведь Nginx
должен прислать GET запрос.
До парсинга запроса дело еще не дошло,
Libevent ждет когда Kqueue вернет сокет и с
него можно будет считать данные и
передать выше на обработку, но Kqueue не
возвращает сокет 60 секунд, пока Nginx не
закроет соединение.
> > Переключение бэкенд сервера с
> > использования Kqueue на Poll решает
>
> Сомнительно.
Серьезно, лишь один дополнительный
вызов и проблема исчезает.
event_config_avoid_method(cfg, "kqueue");
А в логе libevent сообщает что использует
poll.
> Попробуйте libev, у него есть
> libevent-совместимый API.
Я использую http функции из libevent, которых
нет в libev.
Posted at Nginx Forum: http://forum.nginx.org/read.php?21,213985,213997#msg-213997
Подробная информация о списке рассылки nginx-ru