我有 2 台服务器,均运行 Ubuntu 服务器 11.10。第一台服务器运行 Apache 和 PHP,并连接到第二台服务器上的 Mysql 数据库。
问题是第二台服务器上的 mysql 响应很慢。mysql 日志没有显示除以下之外的任何错误:120526 12:56:27 [注意] 插件“FEDERATED”已被禁用。但这并不妨碍 mysql 启动/重新启动。
我尝试使用第一台服务器上的相同 php 应用程序从 mysql 服务器内部运行查询,速度非常快。但是当相同的 php 应用程序从第一台服务器向 mysql 服务器请求数据时,响应非常慢,而且数据库不大。
我怎样才能找到问题的原因?
注意:通过 php 应用程序从服务器 1 连接到服务器 2 时使用的是 IP 地址,所以我不认为这与 DNS 相关。
谢谢
答案1
影响 mysql 性能的因素有很多:
- 确保您在本地和远程比较相同的查询。
- 检查两台服务器之间的网络带宽/延迟。
- 尝试使用选项启动 mysql 服务器
--skip-name-resolve
。这将禁用 DNS 解析,从而可能导致不必要的延迟。
答案2
首先你必须找出问题所在。在网络上还是在服务器上。你可以用 iperf 测试服务器之间的网络性能http://sourceforge.net/projects/iperf/. 在 Ubuntu 上,您可以使用 apt-get 来安装 iperf。
即使您使用 IP 地址进行连接,问题也可能与 DNS 有关。大多数服务器在客户端连接时都会尝试进行反向查找。当客户端无法解析时,服务器将等待超时,然后继续处理请求。