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

Как уменьшить тайм-аут для соединений TIME_WAIT в OpenBSD?

я бегу http_load на OpenBSD 5.2, чтобы проверить, насколько хорош мой nginx setup, и я заметил, что холодные запуски намного быстрее, чем теплые, и с каждым запуском производительность очень резко падает (например, с 3735 ответов в секунду при холодном запуске до 2288, 1804, 1553 при последующих запусках) .

Я заметил с netstat -n | wc -l что после запуска несколько тысяч подключений http_load, большинство из которых находятся в (state) из TIME_WAIT.

Может показаться set timeout tcp.finwait 8 для pf.conf уменьшит некоторое значение тайм-аута с 45 до 8, но, похоже, это не влияет на эти соединения TIME_WAIT, которые все еще остаются в netstat -n ровно 60 с момента их создания до http_load / nginx.

Есть ли способ истечь эти соединения TIME_WAIT раньше, чем через 60 секунд?

Вы можете поиграть с этими переменными sysctl:

/etc/sysctl.conf

net.inet.tcp.keepinittime = 150
net.inet.tcp.keepidle = 14400
net.inet.tcp.keepintvl = 150