я бегу 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