MySQL соединение медленное (5 секунд)
После сборки моего веб-приложения при первой загрузке я создаю 2 подключения к mysql на debian, затем 1-2 (r/w) для каждой страницы после этого. Соединение постоянно занимает 5,2 секунды. Debian находится на виртуальной машине, работающей в моей ОС. Почему связь занимает так много времени?
Время от времени это займет < 0,1 секунды, что замечательно, но 5,2х2-3 на каждый прогон слишком много. Кто-нибудь сталкивался с этой проблемой? как мне это решить?
примечание: я использую.NET для подключения. Не то чтобы это имело значение. и его MySQL v5
-edit- После проверки настроек брандмауэра и выполнения многих вещей я не мог понять проблему. Я нашел версию mysql для noinstall и использовал ее. Соединения молниеносны.
4 ответа
Затмение может быть правильным. Первое, что я хотел бы проверить, это обратный DNS. Чтобы устранить эту проблему, попробуйте установить флаг --skip-name-resolver в mysqld:
http://dev.mysql.com/doc/refman/5.0/en/server-options.html
Также обязательно добавьте ваше имя хоста / ip в / etc / hosts
Вы используете имя хоста или IP-адрес для подключения? Похоже, у вас медленное разрешение DNS.
Если вы работаете в системе Debian, я заметил, что наличие запущенного демона mDNS avahi может вызвать проблемы. Я заметил это, потому что я мог выполнять мгновенный прямой и обратный поиск с помощью dig, но все еще имел 5-секундный тайм-аут, соединяющийся с MySQL. Глядя на перехват пакетов, я мог видеть 3 запроса mDNS за 5 секунд до успешного подключения. Отключение или удаление демона avahi решило эту проблему для меня.
Я хотел бы рассмотреть вопрос о настройке брандмауэра на хост-машине.
Поскольку это виртуальная машина, существует вероятность того, что соединение веб-приложения с базой данных проверяется брандмауэром или фильтром содержимого, запущенным на хост-компьютере.