为什么 LAN 上的 DB 连接比 WAN 连接慢?

为什么 LAN 上的 DB 连接比 WAN 连接慢?

我很久以前就注意到,通过 LAN 的 MySQL 数据库连接速度明显比通过 Internet 的数据库连接慢。

我运行的是 32 位 Windows 7,并使用以太网电缆连接到交换机。交换机连接到调制解调器/路由器,我的互联网连接就是从这里进入大楼的。我没有使用 WiFi。

我运行了以下代码:

//store current time
$start = microtime(true);

//connect to database outside my LAN
$c1 = mysql_connect("1.2.3.4", "user1", "pass1");
mysql_select_db("database1", $c1);

//print out the time taken in seconds
echo microtime(true) - $start, "<br>";

//close the database connection
mysql_close($c1);


//store current time
$start2 = microtime(true);
//connect to database on my LAN
$c2 = mysql_connect("192.168.0.10", "user2", "pass2");
mysql_select_db("database2", $c2);

//print out time taken in seconds
echo microtime(true) - $start2, "<br>";

//close database connection
mysql_close($c2);

三次,返回时间如下:

外部 WAN 数据库:0.054498910903931、0.055356025695801、0.05623197555542

内部局域网数据库:5.0052859783173、5.0053160190582、5.005627155304

LAN 文件传输速度(使用 Samba 在 Ubuntu 机器上共享驱动器)约为 30MB/s,我的宽带连接速度为下行 35Mbps 和上行 7Mbps。

据传,使用 SSH 登录本地服务器相当滞后。

我不知道你还需要什么其他信息,所以请询问更多信息,我不明白为什么本地连接所以慢多了!

答案1

我使用 Wireshark 检查连接流量,发现许多 MDNS 请求似乎失败了。

后来我遇到了此错误与 Ubuntu 名称服务切换配置有关并更改/etc/nsswitch.conf文件以使用 mDNS 作为最后的手段,如Ubuntu 服务器网络配置页。

重新启动所需的服务(MySQL、SSH)就像魔术一样加快了一切速度!

相关内容