ПРОЕКТЫ 


  АРХИВ 


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]

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


 




Copyright © Lexa Software, 1996-2009.