У меня есть 2 сервера, оба с RHEL 6, один для Apache 2.2 и один для memcached (memcached-1.4.4-3).
Заметил увеличение количества TIME_WAIT
подключения на сервере Apache
netstat -n | grep 11211 | awk '{print $6}' | sort | uniq -c
1 ESTABLISHED
807 TIME_WAIT
и все равно число увеличивается.
TIME_WAIT
значит он до сих пор используется?Связи в TIME_WAIT
штат жестяная банка вызвать проблему, но только когда вы доберетесь до 30 000 из них.
Каждое из этих подключений удерживает локальный IP-адрес и порт открытыми на случай, если какие-либо пакеты из более раннего завершенного подключения были задержаны и пройдут после закрытия подключения. Это конструктивная особенность TCP..
Если у вас их слишком много, новые подключения не могут быть открыты, пока некоторые из подключений в TIME_WAIT
состояние истекает. Симптомы, которые вы можете увидеть во внешнем интерфейсе, - это более медленные, чем обычно, HTTP-запросы, особенно когда сайт сильно загружен. (Но у этих симптомов может быть много-много разных причин, поэтому не спешите делать такой вывод.)
Я только однажды столкнулся с этой проблемой, и это было связано с некорректным поведением скрипта на некоторых серверах, который открывал новое соединение с базой данных для каждого запроса, вместо того, чтобы удерживать открытое соединение и запускать по нему несколько запросов. Это не обычная проблема.