Сервер прекращает принимать соединения после ~120 000 активных на 18.04.3

Я выполняю тип теста перфекта, где у меня есть простой сервер TCP с 4 IP-адресами, который слушает на порте и получает соединения от нескольких других компьютеров в локальной сети. Все хорошо работает до только при 120 000 активных соединений, клиенты могут получить сообщения от клиента и создать новые соединения. В только под 120 000, новые соединения просто прекращают появляться. Нет никакого действия журнала по серверу, и клиенты начинают получать тайм-ауты после немного. Нет никакого брандмауэра, который помешал бы. Я уже настроил набор настроек:

/etc/sysctl.conf

net.core.netdev_max_backlog = 1000000

net.core.netdev_budget = 50000
net.core.netdev_budget_usecs = 5000

net.core.somaxconn = 1024000

net.core.rmem_default = 1048576
net.core.rmem_max = 16777216

net.core.wmem_default = 1048576
net.core.wmem_max = 16777216

net.core.optmem_max = 65536

net.ipv4.tcp_rmem = 4096 1048576 2097152
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.udp_rmem_min = 8192
net.ipv4.udp_wmem_min = 8192
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_max_syn_backlog = 3000000
net.ipv4.tcp_max_tw_buckets = 2000000

net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_slow_start_after_idle = 0
net.ipv4.tcp_keepalive_time = 60
net.ipv4.tcp_keepalive_intvl = 10
net.ipv4.tcp_keepalive_probes = 6
net.ipv4.tcp_mtu_probing = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_rfc1337 = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1

/etc/security/limits.conf

* soft nofile 6553600
* hard nofile 6553600
cat /proc/sys/fs/file-max
1621708

Пределы являются намеренно полностью излишеством, потому что это - просто тест. Есть ли некоторые другие настройки, которые я пропускаю, который включил бы больше соединений? Ни ЦП, ни RAM не подчеркиваются так, я хотел бы продолжать продвигать аппаратные средства. Сервер и клиенты все работают на экземплярах AWS EC2 t3a.xlarge, если это имеет какое-либо значение.

4
задан 12 October 2019 в 04:43

1 ответ

Оказывается, что это было ограничение AWS. По-видимому, разговор между экземплярами EC2 в том же VPC имеет предел активного соединения приблизительно 120 000. Создание их использовать общедоступный IP для передачи избавилось от предела. Я не получал ошибок в Ubuntu, потому что ОС ничего не ограничивала.

2
ответ дан 1 December 2019 в 10:14

Другие вопросы по тегам:

Похожие вопросы: