web-dev-qa-db-ja.com

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ファイル転送速度(Sambaを使用してUbuntuマシンでドライブを共有する)は約30MB /秒で、ブロードバンド接続速度は35Mbpsダウン、7Mbpsアップです。

ちなみに、SSHを使用してローカルサーバーにログインするのは非常に時間がかかります。

他にどのような情報が必要かわからないので、もっと質問してください。ローカル接続がなぜはるかに遅いのか、私は困惑していますso

3
Jon

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

その後、私は buntu Name Service Switch構成のこのバグ に遭遇し、 buntuサーバーネットワーク構成 で説明されているように、最後の手段としてmDNSを使用するように/etc/nsswitch.confファイルを変更しました。 =ページ。

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

3
Jon