Медленные запросы к удаленной базе данных MySQL

После проведения репликации по типу Master-Slave  и начале тестирования обнаружил. что запросы к удаленной базе данных происходят на много дольше чем к той которая расположена локально.

Для теста я использовал скрипт который в случайном порядке с вероятностью в 50 процентов будет делать запросы, то к локальной базе, то к удаленной. И при запросах к удаленной запросы выполнялись на много дольше, к локальной моментально. Локальный сервер является виртуальным удаленный физическим с более мощной конфигурацией. Пинг к этому серверу проходил с минимальными задержками. Поэтому после небольшого мозгового штурма пришел к выводу что проблема явно не канале передачи данных. а в конкретной конфигурации mysql.

Проблем с нехваткой памяти или сверхестественной загрузкой процессора выявлено не было, да и не логично. Погуглив особо много информации не нашел, но все же отрыл один топик с похожей проблемой.

Очень часто большие задержки интернета связаны с проблемой настройки ДНС. Это относиться ко всем системам как Windows так и Linux. Диагностируются такие проблемы пингом. Если задержек к удаленным хостам нет например 8.8.8.8, а интернет ползает медленно, то проблема в нем.

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

telnet x.x.x.x 3306

Если при этом происходит задержка, а не происходит моментального подключения, то у вас скорее всего подобная проблема.

Я использую Linux Debian на своих серверах и опишу решение проблемы для него, для других версий дистрибутива решение либо аналогично либо схоже.

У демона mysqld есть специальная опция —skip-name-resolve ее лучше всего прописать прямо в конфиге my.cnf в секции [mysqld]. И перезапустить сервер. Этот параметр отвечает за резолв имен серверов, что в принципе для такой ситуации не требуется.

В случае если в скриптах для подключения к удаленной базе данных используются буквенное обозначение хоста. То сразу можно прописать его в файл hosts. Так как первым делом как известно компьютер для разрешения(резолвинга) обращается к нему.

После проведения этих операций запустил свой тестовый скрипт и он начал работать в задуманном режиме без задержек от расположенности серверов.

Комментарии

Популярные сообщения из этого блога

Две сетевые карты Windows 7. Настройка маршрутизации

Cisco Packet Tracer + Русификатор

Восстановление конфигурации Cisco с tftp сервера