Обработка множества исходящих TCP-соединений

Обработка множества исходящих TCP-соединений

Я тестировал сервер на EC2 с "High" производительностью сети, чтобы проверить максимальное количество исходящих соединений, которые я мог бы использовать на нем. Не меняя никаких настроек, открывая около ~1000 потоков, каждый из которых отправляет TCP-запрос, примерно через 10 минут я получаю ошибку "connection denied", и я уверен, что проблема на моей стороне, так как знаю, что целевой сервер не видит никаких ошибок.

Я следовал инструкциям наЭта статьяв котором говорится о TIME_WAITи Ephemeral portsпоэтому я сделал это:

  1. Увеличение количества эфемерных портов
  2. Включение tcp_tw_recycle и tcp_tw_reuse

Выполняя эти два действия, я все еще получаю ошибки, но после более длительного периода, например, часов. В общем, я хочу знать, насколько сервер Ubuntu с определенной конфигурацией оборудования может обрабатывать сетевой трафик. Как я могу отслеживать исходящий трафик, чтобы я мог выяснить, что именно пошло не так?

решение1

Для мониторинга исходящего трафика воспользуйтесь следующими инструментами: tshark, tcpdump, ettercap.

Также посмотрите на эти настройки:

root@server ~ # sysctl -A | grep -i wait
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
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_time_wait = 120

Связанный контент