我目前正在为我的web和db服务器运行一个虚拟化环境。当我单独访问web服务器或MySQL服务器时,它们都是快速的。我也有网站运行在web服务器上,不需要数据库服务器和那些都快速加载。但是,当我访问需要web服务器从db服务器调用的托管网站时,每次页面加载都有大约5-7秒的延迟。这已经证实了两个非常简单的网站和一个Word新闻设置以及。下面是配置:
网络服务器- CentOS 6.5,Apache2.2.15
DB服务器- CentOS 6.5,MySQL 5.1.73
我的问题是,服务器是否在每个db调用上不断地相互验证(从而导致延迟)?如果是这样的话,有没有人知道如何在两者之间进行永久认证?
基于这个假设,我可能离得很远,而身份验证可能与此无关。在这一点上,我完全愿意接受任何和所有的想法。非常感谢。
V/R,
托尼
发布于 2014-03-26 16:51:08
2014年4月17日最新情况
DNS确实是罪魁祸首。一旦我将每台服务器添加到其他dns主机文件中,延迟就消失了。把我所做的具体记录下来。
我首先访问了位于/etc/ host (注意是主机,而不是hosts.conf)的dns主机文件,并添加了每台服务器: 192.168.0.1服务器1 192.168.0.2服务器2
然后,我转到了位于/etc/nsswitch.conf的nsswitch.conf配置文件,并确保这两个配置文件(每个服务器上都有一个配置文件)包含以下一行:host: files
然后我点击主机名,并能够解析私有IP。潜伏期现在消失了!谢谢你的帮助和回答。
V/R,
托尼
即使对于建立连接和身份验证,web服务和db服务器在同一个虚拟机(相同的服务器)上也有很大的延迟吗?如果没有,可能会出现DNS解析问题。
我建议编写最简单的php代码,该代码首先使用mysql_connect (它不持久化连接)和新的mysqli (持久化连接http://ca3.php.net/manual/en/mysqli.quickstart.connections.php )并检查它们需要多长时间才能连接到数据库,这将排除web应用程序代码中的问题。
另一个测试是转到(web)服务器,用mysql命令手动连接到数据库,看看需要多长时间。
在所有这些测试中,除了连接之外,还可以添加一个简单的select查询。
https://serverfault.com/questions/584689
复制相似问题