Медленные запросы к удаленной базе данных 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. Так как первым делом как известно компьютер для разрешения(резолвинга) обращается к нему.
После проведения этих операций запустил свой тестовый скрипт и он начал работать в задуманном режиме без задержек от расположенности серверов.
Для теста я использовал скрипт который в случайном порядке с вероятностью в 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. Так как первым делом как известно компьютер для разрешения(резолвинга) обращается к нему.
После проведения этих операций запустил свой тестовый скрипт и он начал работать в задуманном режиме без задержек от расположенности серверов.
Комментарии
Отправить комментарий