Назад | Перейти на главную страницу

TIME_WAIT Info (уменьшить)

У меня есть приложение ajax, которое делает запрос каждые 3 секунды, запрашиваемая страница устанавливает заголовок в (header ("Connection: Keep-Alive, close");), затем выполняет запрос к базе данных и возвращает самые свежие данные.

Значение TIME_WAIT составляет 60 секунд, поэтому даже если я закрываю соединение на запрошенной странице (например, «Соединение: Keep-Alive, закрыть»), соединение, кажется, присутствует в течение следующих 60 секунд (это происходит для каждого запроса Ajax. что я делаю), поэтому в течение 1 минуты выполняется 20 запросов, а общее время TIME_WAIT для этого IP-адреса составляет около 20

Можно ли уменьшить TIME_WAIT до 15 секунд, уменьшить общее TIME_WAITS или можно принудительно закрыть соединение после каждого запроса Ajax

Любая помощь будет оценена

Спасибо

Вы можете использовать параметр ядра net.ipv4.tcp_fin_timeout:

# sysctl net.ipv4.tcp_fin_timeout=15

Отредактируйте /etc/sysctl.conf, добавьте в конец

net.ipv4.tcp_fin_timeout = 15

затем запустите:

# sysctl -p

Connection: keep-alive, close недопустимый HTTP 1.1, так как ровно один токен подключения разрешено, поэтому я бы ожидал, что этот заголовок будет проигнорирован и, тем не менее, будет активен keep-alive; в HTTP 1.0 тег «Connection» означает совсем другое.

Не должно быть никакой технической разницы, является ли соединение «переработанным» или нет, и вы должны оставить этот выбор браузеру. Игра с таймаутами FIN почти никогда не бывает хорошей идеей.