- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
"max clients is also limited by the number of socket connections available on the system (~64k)"
видимо, ошибочно?
Из контекста вырвано. Речь об исходящих соединениях.
Ну или какой-то старой системе.
Подскажите, что именно отслеживать? Поставил munin и добавил плагин nginx_status.
Да, вот это и еще нестандартный плагин tcp-states, на который ссылку я раньше давал. Все эти показатели полезно знать.
netstat при высоком keepalive 600 в nginx:
то есть 600 секунд в конфиге nginx ? там же по-умолчанию то 75.
Нужно совсем немного - 10 даже хватит. Зависит от специфики,но обычно суть этого keep-alive в том, чтобы последовательная загрузка элементов одной странички шла быстро .Держать соединение и ждать следующей странички в современном интернете , пожалуй, лишнее.
Поставил 20480 (для 4 worker_processes ). Или можно смело ставить 51200*4?
на мой взгляд - да. но если вы завысили keep-alive, зачем усугублять?
Классика NAT: порты кончились.
Лечение: делаем пул ип адресов и мажем по ним трафик дальше.
lamma, как выше подсказали, для nginx порты не при чем
Опять проблема. На самой машине пробую:
telnet localhost 80
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection timed out
Ошибок, в т.ч. в syslog не видно
---------- Добавлено 08.03.2016 в 06:44 ----------
netstat:
38174 TIME_WAIT
6337 FIN_WAIT2
4259 ESTABLISHED
1354 FIN_WAIT1
698 LAST_ACK
512 SYN_RECV
141 CLOSING
90 CONNECTED
1 servers)
1 I-Node
---------- Добавлено 08.03.2016 в 07:01 ----------
Видимо все же есть conntrack
Mar 8 09:45:00 user kernel: [1665539.556599] __ratelimit: 30694 callbacks suppressed
Mar 8 09:45:00 user kernel: [1665539.556628] nf_conntrack: table full, dropping packet.
---------- Добавлено 08.03.2016 в 07:07 ----------
sysctl -a | grep conntrack
net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 120
net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 60
net.netfilter.nf_conntrack_tcp_timeout_established = 432000
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_last_ack = 30
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close = 10
net.netfilter.nf_conntrack_tcp_timeout_max_retrans = 300
net.netfilter.nf_conntrack_tcp_timeout_unacknowledged = 300
net.netfilter.nf_conntrack_tcp_loose = 1
net.netfilter.nf_conntrack_tcp_be_liberal = 0
net.netfilter.nf_conntrack_tcp_max_retrans = 3
net.netfilter.nf_conntrack_udp_timeout = 30
net.netfilter.nf_conntrack_udp_timeout_stream = 180
net.netfilter.nf_conntrack_icmp_timeout = 30
net.netfilter.nf_conntrack_acct = 1
net.netfilter.nf_conntrack_events = 1
net.netfilter.nf_conntrack_events_retry_timeout = 15
net.netfilter.nf_conntrack_count = 312231
net.netfilter.nf_conntrack_buckets = 16384
net.netfilter.nf_conntrack_checksum = 1
net.netfilter.nf_conntrack_log_invalid = 0
net.netfilter.nf_conntrack_expect_max = 256
net.ipv4.netfilter.ip_conntrack_generic_timeout = 600
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent2 = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 432000
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_last_ack = 30
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close = 10
net.ipv4.netfilter.ip_conntrack_tcp_timeout_max_retrans = 300
net.ipv4.netfilter.ip_conntrack_tcp_loose = 1
net.ipv4.netfilter.ip_conntrack_tcp_be_liberal = 0
net.ipv4.netfilter.ip_conntrack_tcp_max_retrans = 3
net.ipv4.netfilter.ip_conntrack_udp_timeout = 30
net.ipv4.netfilter.ip_conntrack_udp_timeout_stream = 180
net.ipv4.netfilter.ip_conntrack_icmp_timeout = 30
net.ipv4.netfilter.ip_conntrack_count = 312234
net.ipv4.netfilter.ip_conntrack_buckets = 16384
net.ipv4.netfilter.ip_conntrack_checksum = 1
net.ipv4.netfilter.ip_conntrack_log_invalid = 0
Dimka, точно есть . Я бы попробовал выгрузить модуль, но вероятно у вас все же есть правила, от которых conntrack зависит.
Например, ограничение на число соединений с одного IP.
Ну тогда ключ может называться net.nf_conntrack_max и придется его увеличивать. По-умолчанию он как раз 64k, так что все сходится.
Там тоже своих таймаутов куча и он как бы сам по себе, потому что призван отслеживать чужие транзитные соединения на линукс-роутерах.
Но я бы пока не пытался эти параметры испортить, если можно просто лимит поднять.
lsmod | grep ipt
iptable_nat 4283 0
nf_nat 13308 1 iptable_nat
nf_conntrack_ipv4 9833 3 nf_nat,iptable_nat
nf_conntrack 46391 3 nf_conntrack_ipv4,nf_nat,iptable_nat
iptable_filter 2258 1
ip_tables 13915 3 iptable_filter,iptable_nat,iptable_mangle
x_tables 12845 4 ip_tables,xt_multiport,ip6_tables,iptable_nat
lsmod | grep nf
nf_conntrack_ipv4 9833 3 nf_nat,iptable_nat
nf_conntrack 46391 3 nf_conntrack_ipv4,nf_nat,iptable_nat
nf_defrag_ipv4 1139 1 nf_conntrack_ipv4
---------- Добавлено 08.03.2016 в 07:32 ----------
modprobe -n -r nf_conntrack
FATAL: Module nf_conntrack is in use.
---------- Добавлено 08.03.2016 в 07:52 ----------
Поборол "nf_conntrack: table full, dropping packet"
Все равно сервер страшно тупит. Проверки на доступность - каждая третья вылетает по таймауту.
И munin не может получить по localhost стат от nginx
Т.к.
telnet localhost 80
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection timed out
Dimka, а я и не говорю об nginx.
Проблема классическая. Первыми на неё натыкаются пионернеты с натом на тазиках.
Вторые: контент сервера с большим количеством запросов.
Метода решения два:
1. Заниматься порнографическим тьюнингом ядра и потом все равно перейти к п.2
2. Мазать трафик по ip пулу и не париться.
К пункту 2 можно добавить потом vrrp или подобную технологию, что бы клиенты не в пул, а в один адрес смотрели.
Там тоже своих таймаутов куча и он как бы сам по себе, потому что призван отслеживать чужие транзитные соединения на линукс-роутерах.
Но я бы пока не пытался эти параметры испортить, если можно просто лимит поднять.
Опустил все таймауты net.ipv4.netfilter.ip_conntrack_tcp_timeout_***** - провисать и выпадать по таймауту стало меньше.
Стал net.netfilter.nf_conntrack_count = 49574 (вместо 312231)
Dimka, ну а какие именно правила iptables у вас требуют conntrack ? может пересмотреть их необходимость и убрать ? тогда модуль выгрузится
iptables -L -n -v (заменил IP XXX)
pkts bytes target prot opt in out source destination
3895 332K fail2ban-ssh-ddos tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 22
3895 332K fail2ban-ssh tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 22
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 4698K packets, 3581M bytes)
pkts bytes target prot opt in out source destination
Chain fail2ban-ssh (1 references)
pkts bytes target prot opt in out source destination
163 9780 DROP all -- * * 180.XXX.XX.XX 0.0.0.0/0
19 1632 DROP all -- * * 40.XXX.XXX.XX 0.0.0.0/0
0 0 DROP all -- * * 60.XXX.XXX.XX 0.0.0.0/0
51 3060 DROP all -- * * 183.XXX.XXX.XX 0.0.0.0/0
3439 305K RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
Chain fail2ban-ssh-ddos (1 references)
pkts bytes target prot opt in out source destination
3895 332K RETURN all -- * * 0.0.0.0/0 0.0.0.0/0