Php - подключение к удаленной базе данных очень медленное - PullRequest
3 голосов
/ 08 ноября 2008

У меня новый VPS-сервер, и я пытаюсь подключить его к другому серверу того же провайдера. Когда я подключаюсь через инструмент командной строки mysql, соединение очень быстрое.

Когда я использую PHP для подключения к удаленной БД, время подключения может занять до 5 секунд. Запросы после этого выполняются быстро.

Это не ограничивается mysql, использование file_get_contents () для загрузки файла практически с любого другого сервера дает такую ​​же задержку. Использование wget для получения файла не имеет этой задержки.

Я синхронизировал DNS-запросы из PHP с помощью dns_get_record (), и это быстро (1-2 миллисекунды).

Любые мысли о том, что в конфигурации PHP может быть причиной этого?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 08 ноября 2008

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

Проверьте конфигурацию веб-сервера. Также, если это вариант, попробуйте PHP из командной строки и посмотрите, будет ли он работать лучше без участия уровня веб-сервера.

1 голос
/ 09 ноября 2008

Я закончил обновление с PHP 5.1.6 до PHP 5.2.6, и проблема ушла. Это определенно была проблема с поиском DNS в PHP, запуск следующего занял бы около 5 секунд:

gethostbyname('example.com')

У меня такое чувство, что проблема с IPV6 (в основном, догадка о том, как читать об этом в Интернете), но у меня нет никаких доказательств.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...