TIME_WAIT Info (уменьшить)
У меня есть ajax-приложение, которое отправляет запрос каждые 3 секунды, запрошенная страница устанавливает заголовок на (header("Connection: Keep-Alive, close");), затем выполняет запрос к базе данных и возвращает последние данные.
Значение для TIME_WAIT составляет 60 секунд, поэтому, даже несмотря на то, что я закрываю соединение на запрашиваемой странице (т. Е. "Соединение: Keep-Alive, close"), соединение кажется присутствующим в течение следующих 60 секунд (это происходит для каждого запроса Ajax что я делаю), так что в течение 1 минуты сделано 20 запросов, и общее время TIME_WAIT для этого IP, кажется, составляет около 20
Можно ли уменьшить TIME_WAIT, скажем, до 15 секунд, чтобы уменьшить общее время TIME_WAITS, или можно принудительно закрыть соединение после каждого запроса Ajax?
Любая помощь будет оценена
Спасибо
2 ответа
Вы можете использовать параметр ядра 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 почти никогда не бывает хорошей идеей.