為什麼 LAN 上的資料庫連線比 WAN 連線慢?

為什麼 LAN 上的資料庫連線比 WAN 連線慢?

很早以前我就注意到 LAN 上的 MySQL 資料庫連線比 Internet 上的資料庫連線慢很多。

我運行的是 Windows 7 32 位,並使用乙太網路電纜連接到交換器。交換器連接到數據機/路由器,這是我的網路連接到達建築物的地方。我沒有使用 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);

三次,回傳以下次數:

外部廣域網路資料庫: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)就像魔法一樣加快了一切!

相關內容