Увеличить скорость работы TCP

10 000 руб. за проект
15 августа 2024, 17:06 • 1 отклик • 36 просмотров
Есть vps. На нем стоит приложение на NodeJs. Делается большое количество исходящих POST запросов. Примерно 400 000 за 3 минуты. Раньше использовался keep-alive и было все быстро. Сейчас к сожалению keep-alive нет возможности использовать (нужно на каждый новый запрос новый ip иметь) На данный момент скорость сильно падает. Т.е. начинается с нормальной скоростью, но так минут 5 и дальше начинает падать

Попробовал разнести запросы по разным серверам. Поднял еще один. Отправляю туда по ajax набор данных и получаю обратно результат обхода всех обходов. До 350 запросов все хорошо. Но если отправить на обход 500, то второй сервер все нормально обходит и отправляет обратно, но на первом сервере этот ajax запрос зависает

Пробовал разобраться в TCP, пробовал разные настройки. Текущий sysctl.conf выглядит так

net.ipv4.tcp_fin_timeout = 10
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
fs.file-max = 91920
net.core.netdev_max_backlog=10000
net.core.somaxconn=10000
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_keepalive_time = 1800
net.ipv4.tcp_keepalive_probes = 2
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_moderate_rcvbuf =1
net.ipv4.tcp_no_metrics_save = 1
net.ipv4.tcp_max_syn_backlog=20000
fs.file-max=14000000
fs.nr_open=14000000
net.ipv4.tcp_slow_start_after_idle=0
net.ipv4.tcp_fastopen=1
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
net.ipv4.tcp_timestamps=0
net.ipv4.tcp_sack=1
net.core.netdev_max_backlog=150000
net.ipv4.tcp_window_scaling=1
net.ipv4.tcp_synack_retries=1

Вывод ss -s

Total: 7047
TCP: 11026 (estab 5380, closed 4754, orphaned 56, timewait 4754)

Transport Total IP IPv6
RAW 1 1 0
UDP 18 17 1
TCP 6272 6260 12
INET 6291 6278 13
FRAG 0 0 0