MySQL завис или проблема в сети?
У нас есть MySQL-сервер (5.5.47), который размещен на физическом сервере. Он слушает внешний интернет-интерфейс (с ограниченным доступом пользователей), сервер MySQL интенсивно используется из разных мест (мы используем разные библиотеки для связи с MySQL). Но иногда весь сервер (или сеть) mysql зависает и прекращает принимать соединение, и клиенты терпят неудачу с помощью etimedout(connect)/timeout(recv), даже прямое соединение с сервером на mysql с mysql cli не работает (зависает без какого-либо ответа - кажется, попробуйте установить соединения). Первой мыслью было то, что это связано с tcp backlog, поэтому mysql backlog был увеличен - но это совсем не помогло.
Проблема не повторяется, поэтому в прошлый раз, когда возникла эта проблема, мы нюхали трафик и что мы получаем:
http://grab.by/STwq - скриншот
*.*.27.65 — it is client
*.*.20.80 — it is mysql server
Из сеанса мы можем предположить, что соединение tcp установлено, но сервер повторно передает SYN/ACK клиенту (из дампа мы видим, что сервер получает ACK, зачем повторная передача?), Но в обычном случае mysql должен сгенерировать пакет init и отправить клиенту после того, как соединение было установлено. Это только экран из 1 сеанса, но все остальные сеансы в основном такие же, SYN -> SYN/ACK -> ACK -> и сервер повторно передает SYN/ACK до retries_count.
После перезапуска MySQL все становится нормально сразу после перезапуска. Так что не уверен, что это связано с сетью или MySQL.
Любые мысли будут уместны.
Спасибо!