У меня есть сервер nginx с балансировкой нагрузки и обратным прокси. Прямо сейчас он идет за другим nginx, но очень скоро я планирую сделать его фронтальным, где он будет получать TCP-соединения от клиентов напрямую со скоростью 500 запросов в секунду.
У меня большие проблемы с сервером. Я вставил сюда свои конфигурации и уверен, что проблема связана с ipconntrac и подобными вещами, которые мне не подходят.
http://paste.org/pastebin/view/28543
root@load_balancer:/proc/sys/net/ipv4# netstat -an|awk '/tcp/ {print $6}'|sort|uniq -c
67 CLOSING
727 ESTABLISHED
173 FIN_WAIT1
183 FIN_WAIT2
19 LAST_ACK
5 LISTEN
447 SYN_RECV
1 SYN_SENT
27970 TIME_WAIT
Это машина Ubuntu с установленным в основном nginx (балансировщик нагрузки и обратный прокси).
Это определенно не здорово. Можете ли вы помочь мне понять, что происходит, и как я могу это исправить. Это мой действующий сервер, и я уверен, что он сейчас в плохом состоянии. Любой документ или команды, чтобы исправить это, или настройки, которые я должен сделать, чтобы сделать это лучше и сократить время ожидания, а лучше fin_wait1 / 2, будут потрясающими.
Попробуйте следующее:
echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
Возможно, это поможет уменьшить количество подключений TIME_WAIT. Вы также можете сделать эти изменения постоянными в /etc/sysctl.conf
:
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_tw_recycle=1