On 9/24/06, Igor Sysoev <is@xxxxxxxxxxxxx> wrote:
> При этом nginx взлетает, говорит в логе, что использует epoll и даже
> вроде бы не очень медленно работает. Но недавно у нас начали
> дропаться SYN'ы, и нам советуют попробовать ускорить процесс приёма
> новых соединений.
Возможно, в ядре нужно увеличить listen backlog.
Спасибо!
Увеличили, включили deferred accept, теперь у нас 1100+ соединений в
ESTABLISHED. Между отправкой HTTP-запроса и появлением в логах следов
этого соединения (по debug_connection) проходит время порядка минуты.
После этого файл (коротенький) начинает обрабатываться и
обрабатывается моментально. Для больших файлов аналогично, длинная
пауза до момента появления в логах и нормальная отдача с максимальной
скоростью клиента.
Может ли быть так, что nginx "добирается" до того, чтобы аксептнуть
это соединение в течение такого времени? Наверняка же epoll
возвращает вперемешку события о новых соединениях и события о том, что
клиенту можно послать очередную порцию? На сервере стоит какой-то
слабосильный (имхо) Celeron 2.66GHz, может быть в этом дело?