Welcome! Log In Create A New Profile

Advanced

FreeBSD + Kqueue/Poll + Libevent

August 18, 2011 07:42AM
День добрый!
Сорри за офтоп, но проблему помог выявить именно Nginx.

Сервер обрабатывает несколько тысяч запросов в секунду:
nginx -> статические запросы, картинки
-> бэкенд для динамических запросов: сервер на С использующий Libevent

Сервер крутится на FreeBSD 7.2 (проверено и на 8.1) и использует Kqueue.
Периодически, ~0.1% от общего числа запросов, Nginx фиксирует ошибку, таймаут ожидания ответа от бэкенда.
Переключение бэкенд сервера с использования Kqueue на Poll решает проблему, Poll справляется с нагрузкой, но хотелось бы найти проблему и использовать Kqueue.

Ситуация стабильно воспроизводится под реальной нагрузкой запросами пользователей.
Воспроизвести проблему с помощью нагрузки утилитой http_load (по 1000 запросов в секунду с нескольких машин) получается далеко не всегда, не могу понять в чем разница!?

Изучение логов Libevent в бэкенде (по проблемным запросам) показывает:
- принимается входящее от Nginx соединение.
- сокет регистрируется в Kqueue и ожидает поступления данных для чтения.
- проходит время таймаут (60 секунд), Nginx закрывает соединение со своей стороны.
- Kqueue сообщает о появлении данных для чтения и возвращает сокет в Libevent, затем данные попадают обработчику бэкенд сервера.

Возможно кто-то сталкивался с таким странным поведением Kqueue?
Nginx работает стабильно на этом же сервере, использует Kqueue.
Может быть гуру смогут помочь разобраться, в чем может быть проблема? Игорь, Масим?
Subject Author Posted

FreeBSD + Kqueue/Poll + Libevent

urri August 18, 2011 07:42AM

Re: FreeBSD + Kqueue/Poll + Libevent

Alexandr Gomoliako August 18, 2011 10:12AM

Re: FreeBSD + Kqueue/Poll + Libevent

urri August 18, 2011 11:00AM

Re: FreeBSD + Kqueue/Poll + Libevent

Alexandr Gomoliako August 19, 2011 08:54AM

Re: FreeBSD + Kqueue/Poll + Libevent

urri August 19, 2011 12:46PM

Re: FreeBSD + Kqueue/Poll + Libevent

Valery Kholodkov August 20, 2011 05:54AM

Re: FreeBSD + Kqueue/Poll + Libevent

Igor Sysoev August 20, 2011 12:22PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 174
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready