Подключение к MySQL серверу в SYN_SENT

В последние несколько дней мы столкнулись со странной проблемой между нашим сервером приложений и сервером базы данных (Mysql): соединение с сервером базы данных с сервера приложений зависает SYN_SENT состояние и после этого мы не можем установить соединение с сервером базы данных через порт mysql (3306). Когда мы проверили netstat вывод на сервер базы данных его в SYN_RECV государство.

Что я могу выяснить, так это то, что сервер MySQL получает запрос SYN, а также отвечает, и, следовательно, он не достигает клиента SYN_RECV на стороне сервера и SYN_SENT на стороне клиента. Я думаю SYN_SENT состояние должно пройти через некоторое время, и из-за этого другие попытки соединения с БД не должны зависать.

Кто-нибудь знает, как мы можем решить эту проблему?

Детали настройки:

Сервер приложений: RHEL 5.4, выпуск ядра = 2.6.18-164.el5, x86_64

Сервер базы данных: Mysql Версия: 5.1.49 RHEL 5.4, выпуск ядра = 2.6.18-164.el5, x86_64

1 ответ

У меня была эта проблема с моим провайдером по вечерам. Похоже, какой-то маршрутизатор в цепочке между вами и целевым хостом не работает должным образом с tcp_sack. Решение состоит в том, чтобы отключить его в /etc/sysctl.conf

net.ipv4.tcp_sack = 0

Но это очень плохо для сервера, потому что это замедлит соединения TCP. Вы должны оскорблять своего провайдера

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