Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
FreeBSD + Kqueue/Poll + Libevent
- To: nginx-ru@xxxxxxxxx
- Subject: FreeBSD + Kqueue/Poll + Libevent
- From: "urri" <nginx-forum@xxxxxxxx>
- Date: Thu, 18 Aug 2011 09:33:09 -0400
- Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mickey.jlkhosting.com; s=x; h=Date:Sender:From:Message-ID:Content-Transfer-Encoding:Content-Type:Subject:To; bh=KL38EWfffb8QhwxmwMwJMRMXq4WSBpzCHDVuTYLafR8=; b=VpEIk7jsbRuG4VSLB4WRlxZbiYCqj5tG5G70wUbM+YrM8OwiLh3Cgy9eN2X9Y4Q65NjgX62VYNNIa0skbuIwXDae6u7OjzKeSYTMsVBEt5T9dIwBXjxsrmkGX4soTons;
День добрый!
Сорри за офтоп, но проблему помог
выявить именно 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.
Может быть гуру смогут помочь
разобраться, в чем может быть проблема?
Игорь, Масим?
Posted at Nginx Forum:
http://forum.nginx.org/read.php?21,213985,213985#msg-213985
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
|