Dimka

Рейтинг
228
Регистрация
07.11.2000

Опять проблема. На самой машине пробую:

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_generic_timeout = 600
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

lamma, как выше подсказали, для nginx порты не при чем

Andreyka:
1. Берем кучку дешевых VDS под геокластер

У меня была идея с помощью Amazon Route 53 создать для своего проекта дешевый отказоусточивый CDN. Amazon сам проверяют доступность и отдают ближайший VDS по гео. Купить десяток дешевых VDS.

Кто-то пробовал? Есть какие-то подводные камни?

netwind:
Этот лимит вам вообще мешать не должен. Чистому серверу http ведь эти порты вообще не нужны. Все входящие имеют значение локального порта = 80.

Где-то меня в интернет-советах ввели в заблуждение :) Ориентировался на фразу из интернета:

"max clients is also limited by the number of socket connections available on the system (~64k)"

видимо, ошибочно?

И судя по "69883 ESTABLISHED"(ниже) - вы правы, это выше 65К

netwind:
Покажете этот самый netstat ss -s ?

Сейчас вечер - на сервере спокойно (и наплыв с проблемами бывает редко).

Сейчас,

netstat при высоком keepalive 600 в nginx:

69883 ESTABLISHED

3694 TIME_WAIT

416 FIN_WAIT2

338 LAST_ACK

104 SYN_RECV

92 CONNECTED

46 FIN_WAIT1

37 CLOSING

1 servers)

1 I-Node

при keepalive 4:

21949 TIME_WAIT

3992 ESTABLISHED

3192 FIN_WAIT2

709 FIN_WAIT1

449 LAST_ACK

188 CONNECTED

113 SYN_RECV

50 CLOSING

1 servers)

1 I-Node

---------- Добавлено 07.03.2016 в 17:09 ----------

netwind:
И надо бы проверить не включен ли conntrack в iptables. Не нужен он, а лимит подключений создает равный net.ipv4.netfilter.ip_conntrack_max создает.

Если я правильно проверял, то выключен. И "не найдено" для net.ipv4.netfilter.ip_conntrack_max

---------- Добавлено 07.03.2016 в 17:27 ----------

netwind:
Опять же, в присутствии мониторинга состояний nginx можно было бы более уверенно рассуждать. Допустим, видно было бы сколько живых запросов, а сколько keep-alive

Подскажите, что именно отслеживать? Поставил munin и добавил плагин nginx_status.

---------- Добавлено 07.03.2016 в 17:30 ----------

netwind:
worker_connections увеличивать.

Поставил 20480 (для 4 worker_processes ). Или можно смело ставить 51200*4?

Возможны проблемы с производительностью при больших значениях worker_connections?

---------- Добавлено 07.03.2016 в 18:21 ----------

Andron_buton:
Эти таймауты можно прописать или еще меньше сделать
Цитата:
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.tcp_keepalive_probes = 3

Установил. Еще установил

net.ipv4.tcp_keepalive_time=600

Кроме добавления второго IP, может в конфигах что-то изменить?

Конфиг nginx 1.8

worker_processes  4;

worker_rlimit_nofile 240000;
worker_priority -10;


events {
worker_connections 16384;
}

http {
server_tokens off;
server_names_hash_bucket_size 64;
sendfile on;
tcp_nopush on;
tcp_nodelay on;

proxy_read_timeout 25s;
proxy_connect_timeout 20s;
keepalive_timeout 60 22;
send_timeout 30s;
client_body_timeout 12s;
client_header_timeout 12s;
reset_timedout_connection on;
...}

sysctl

net.ipv4.conf.all.rp_filter=1

net.ipv4.icmp_echo_ignore_broadcasts=1
fs.file-max = 256000

net.core.rmem_default=262144
net.core.wmem_default=262144

net.core.rmem_max = 16777216
net.core.wmem_max = 33554432

net.ipv4.tcp_rmem = 4096 873800 16777216
net.ipv4.tcp_wmem = 4096 655360 16777216

vm.swappiness=10
vm.vfs_cache_pressure=1000

net.ipv4.tcp_synack_retries = 3
net.ipv4.ip_local_port_range = 1024 65500
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 8192

net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 14

net.core.netdev_max_backlog=10000
net.ipv4.tcp_keepalive_time=1200

net.ipv4.tcp_keepalive_intvl=20
net.ipv4.tcp_keepalive_probes=7

net.ipv4.tcp_max_tw_buckets=720000


---------- Добавлено 05.03.2016 в 21:51 ----------

lonelywoolf:
На вскидку можно предложить выключение keepalive и:

отключить keepalive вообще или уменьшить время? Остальное включено.

happy-joker:
страниц (не у групп) вообще нет возможности создавать посты\записи с ссылками

В тексте поста можно вставлять ссылку на группу: @public1

Если ссылка на внешний сайт: в тексте поста - нет, можно под постом.

happy-joker:
Видел, что часто рекламируются записи, продолжения которых можно прочитать якобы только зарегистрировавшись. На проверку оказалось, что это развод, и ссылка на продолжение спрятана где-то под картинкой.

Это работало давно. Года полтора-два назад ВК убрали возможность показа вики-постов только подписчикам паблика.

---------- Добавлено 23.02.2016 в 11:45 ----------

Я обычно тестирую паблики до размещения, открутив на аудиторию паблика около 100 руб через Таргетинг "Запись в сообществе".

И вообще, часто выгоднее привлекать подписчиков через Таргетенг.

Фрукт:
Пользователь увидит баннер, у него появится глубочайший интерес посетить сайт, он вбивает его адрес в поисковую строку, переходит и зависает на сайте, запоминая его адрес, чтобы вернуться вновь

Жесть то какая :) Новый и необычный способ слить бюджет :))

Лучше в оффлайне разместить рекламу. Хоть в газете, хоть на столбе, хоть на асфальте:

- Все лучшие девчонки 222 ПТУ(школы, больницы) уже жгут на domen.com

Фрукт:
на тематических трафовых сайтах вешать некликабельный баннер с адресом сайта.

Не понял всей глубины мысли? Зачем?

Владимир-C:
Как полагаете, такой метод годится?

Метод, который использовал 10 лет назад:

Создаются страницы или каталоги, запрещенные в robots.txt и ставятся на эти страницы - nofollow ссылки, невидимые пользователям. Все, кто посещает эти страницы - идут в бан :)

Для надежности - можно создать несколько подобных страниц. Посетил 2 в течение X минут - ушел в бан.

Желательно иметь список IP ботов ПС, т.к. они не всегда соблюдают роботс. Или, как минимум, фильтровать по юзерагенту.

Всего: 750