LAN 経由の DB 接続が WAN 接続よりも遅くなるのはなぜですか?

LAN 経由の DB 接続が WAN 接続よりも遅くなるのはなぜですか?

私は長い間、LAN 経由の MySQL データベース接続がインターネット経由のデータベース接続よりも大幅に遅いことに気づいていました。

私は 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);

3 回実行した結果、次の時間が返されました。

外部 WAN データベース: 0.054498910903931、0.055356025695801、0.05623197555542

内部 LAN データベース: 5.0052859783173、5.0053160190582、5.005627155304

LAN ファイル転送速度 (Ubuntu マシン上のドライブを共有するために Samba を使用) は約 30 MB/秒で、ブロードバンド接続速度はダウンロード 35 Mbps、アップロード 7 Mbps です。

逸話的に言えば、SSH を使用してローカル サーバーにログインすると、かなり時間がかかります。

他にどのような情報が必要か分かりませんので、詳しくお尋ねください。なぜローカル接続が必要なのかわかりません。それではるかに遅いです!

答え1

Wireshark を使用して接続トラフィックを検査したところ、失敗していると思われる MDNS 要求がいくつか見つかりました。

その後私はUbuntuネームサービススイッチ構成のこのバグそして、/etc/nsswitch.conf最後の手段としてmDNSを使用するようにファイルを変更しました。Ubuntu サーバーのネットワーク構成ページ。

必要なサービス (MySQL、SSH) を再起動すると、すべてが魔法のように高速化されました。

関連情報