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

Задержка 5-7 секунд между сервером Apache и сервером MySQL при обращении веб-сайта к серверу базы данных

В настоящее время я использую виртуальную среду для своего веб-сервера и сервера БД. Когда я обращаюсь к веб-серверу или серверу MySQL по отдельности, они оба работают быстро. У меня также есть веб-сайты, работающие на веб-сервере, которым не требуется сервер db, и все они загружаются быстро. Однако, когда я захожу на свой размещенный веб-сайт, который требует, чтобы веб-сервер звонил с сервера db, для каждой загрузки страницы возникает задержка около 5-7 секунд. Это было подтверждено как с помощью очень простого сайта, так и с помощью настройки Word Press. Вот конфиг:

Веб-сервер - CentOS 6.5, Apache 2.2.15

Сервер БД - CentOS 6.5, MySQL 5.1.73

Мой вопрос: постоянно ли серверы аутентифицируются друг с другом (и, таким образом, вызывают задержку) при каждом вызове db? Если это так, кто-нибудь знает, как установить постоянную аутентификацию между ними?

Я мог бы ошибиться в этом предположении, и аутентификация не могла иметь к этому никакого отношения. Я полностью открыт для любых идей на данный момент. Большое спасибо.

V / R,

Тони

Обновление от 17 апреля 2014 г.

DNS действительно был виновником. Как только я добавил каждый сервер в другой файл хоста DNS, задержка исчезла. Чтобы записать конкретно то, что я сделал.

Сначала я пошел к своим файлам хоста DNS, расположенным в / etc / hosts (обратите внимание, что это hosts, а не hosts.conf) на обоих серверах, и добавил каждый сервер: 192.168.0.1 server 1 192.168.0.2 server 2

Затем я перешел к файлу конфигурации nsswitch, расположенному в /etc/nsswitch.conf, и убедился, что оба файла конфигурации (по одному на каждом сервере) содержат следующую строку: hosts: files dns

Затем я проверил имя хоста и смог разрешить частный IP. Задержка исчезла !!! Спасибо за помощь и ответы на все.

V / R,

Тони


* Здесь старые сообщения *

Это большая задержка даже для настройки соединения и аутентификации, находятся ли веб-служба и сервер базы данных на одной виртуальной машине (одном сервере)? В противном случае может быть проблема с разрешением DNS.

Я предлагаю написать простейший php-код, который подключается к базе данных, используя сначала mysql_connect (который не сохраняет соединения) и более новый mysqli, который сохраняет соединения http://ca3.php.net/manual/en/mysqli.quickstart.connections.php и проверьте, сколько времени они занимают, это исключит проблему с кодом веб-приложения.

Другой тест - перейти на (веб) сервер и вручную подключиться к базе данных с помощью команды mysql и посмотреть, сколько времени это займет.

Во всех этих тестах, помимо соединения, вы можете добавить простой запрос выбора.