我有一台新的VPS服务器,我正试图让它连接到同一ISP的另一台服务器。当我通过mysql的命令行工具连接时,连接速度非常快。
当我使用PHP连接到远程数据库时,连接时间可能最多需要5秒。此后的查询会很快执行。
这不仅限于mysql,使用file_get_contents()从几乎任何其他服务器下载文件都会产生相同的延迟。使用wget获取文件没有这种滞后。
我使用dns_get_record()从PHP中定时DNS查询,这些查询速度很快(1-2毫秒)。
有关php配置中的内容可能导致此问题的任何想法?
感谢。
答案 0 :(得分:2)
我会查看PHP运行的模式,是出于某种原因将脚本作为CGI运行。基本上PHP本身非常慢,并且在运行远程操作时它才会引人注意。
检查Web服务器的配置。此外,如果它是一个选项,请从命令行尝试PHP,看看它是否在没有涉及Web服务器层的情况下表现更好。
答案 1 :(得分:1)
我最终从PHP 5.1.6升级到PHP 5.2.6,问题就消失了。它肯定是PHP中的DNS查找问题,以下大约需要5秒钟才能运行:
gethostbyname('example.com')
我有一种感觉IPV6是一个问题(主要是在网上阅读这个问题的预感),但我没有任何证据。