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.

Любые мысли будут уместны.

Спасибо!

0 ответов

Другие вопросы по тегам