Назад | Перейти на главную страницу

Подключение к серверу 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, kernel-release = 2.6.18-164.el5, x86_64

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

net.ipv4.tcp_sack = 0

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