Welcome! Log In Create A New Profile

Advanced

Нет ответа от сервера c nginx на некоторые syn

Алексей Малов
January 17, 2013 07:10AM
Добрый день.
Столкнулся со следующей ситуацией.
Есть сервер с Debian Squeeze, на нём установлен nginx 0.7.67 (из
репозитория).
В принципе, всё работает без проблем, но заметили, что иногда не получается
приконнектиться к порту. SYN приходит, ответа нет.
Пробовал включить syncookies, это несколько помогло (в логах вылезли ошибки
про «possible SYN flooding on port 80. Sending cookies.»). Но всё равно
были проблемы с коннектом. Синфлуда при этом нет, это просто много
легального трафика.
После этого, увеличил следующие параметры:

net.core.somaxconn = 128000
net.core.netdev_max_backlog = 10000
net.ipv4.tcp_max_syn_backlog = 128000

'
У нжинкса увеличил listen backlog до 65536.

Сообщения про «possible SYN flooding» исчезли, однако всё равно
периодически не приконнектиться к серверу. Проверял простеньким скриптом,
который поднимает 20 тредов и открывает и закрывает сокеты к 80-му порту в
каждом треде.
Из 1000 попыток открыть сокет около 30-50 отваливаются по таймауту (2
секунды), остальные при этом коннектятся практически мгновенно.

При всём этом в dmesg пусто, в error.log нжинкса тоже пусто.

Кусок конфига нжинкса:

user www-data;
worker_processes 2;
worker_rlimit_nofile 65535;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;

events {
worker_connections 65535;
use epoll;
}
server {
listen 80 default backlog=65536;
.....
}



На сервере 2 ядра, LoadAverage держится меньше единицы.

В netstat'e примерно такая картина:

# netstat -ant | grep tcp | tr -s ' ' ' ' | awk '{print $6}' | sort | uniq -c
22 CLOSING
3729 ESTABLISHED
815 FIN_WAIT1
3807 FIN_WAIT2
138 LAST_ACK
5 LISTEN
167 SYN_RECV
37 SYN_SENT
1104 TIME_WAIT



В stub_status'e нжинкса:

Active connections: 5985
server accepts handled requests
35200 35200 34437
Reading: 341 Writing: 223 Waiting: 5421


На всякий случай — SYNы до сервера точно доходят, снимал tcpdump, в нём они
видны.

Подскажите, пожалуйста, что смотреть, куда копать, кто сталкивался?
(у меня есть большие подозрения, что проблема не в самом nginx, но где-то в
настройках системы, поэтому заранее прошу прощения за возможный оффтоп).

P.s. Задавал этот вопрос на хабре и рассылке debian-ru, извините, если
кому-то намозолил глаза. Но ответа пока не нашёл.

--
Alexey Malov
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Нет ответа от сервера c nginx на некоторые syn

Алексей Малов January 17, 2013 07:10AM

Re: Нет ответа от сервера c nginx на некоторые syn

Михаил Панфилов January 17, 2013 07:30AM

Re: Нет ответа от сервера c nginx на некоторые syn

Михаил Панфилов January 17, 2013 07:34AM

Re: Нет ответа от сервера c nginx на некоторые syn

Алексей Малов January 17, 2013 07:44AM

Re: Нет ответа от сервера c nginx на некоторые syn

Alex Vorona January 17, 2013 03:36PM

Re: Нет ответа от сервера c nginx на некоторые syn

Валентин Бартенев January 18, 2013 08:32AM

Re: Нет ответа от сервера c nginx на некоторые syn

Алексей Малов January 21, 2013 04:42AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 178
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