Warum ist eine DB-Verbindung über LAN langsamer als eine WAN-Verbindung?


3

Ich hatte lange bemerkt, dass eine MySQL-Datenbankverbindung über mein LAN wesentlich langsamer war als eine Datenbankverbindung über das Internet.

Ich verwende Windows 7 32-Bit und bin über ein Ethernet-Kabel mit einem Switch verbunden. Der Switch ist mit einem Modem / Router verbunden, über den meine Internetverbindung im Gebäude ankommt. Ich benutze kein WiFi.

Ich habe folgenden Code ausgeführt:

//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);

dreimal, was zu folgenden Zeiten führte:

Externe WAN-Datenbank: 0,054498910903931, 0,055356025695801, 0,05623197555542

Interne LAN-Datenbank: 5.0052859783173, 5.0053160190582, 5.005627155304

Die Übertragungsgeschwindigkeit für LAN-Dateien (mit Samba wird das Laufwerk auf dem Ubuntu-Computer gemeinsam genutzt) beträgt ca. 30 MB / s, und meine Breitbandverbindungsgeschwindigkeit beträgt 35 MB / s nach unten und 7 MB / s nach oben.

Anekdotisch ist die Anmeldung beim lokalen Server mit SSH ziemlich verzögert.

Ich weiß nicht, welche anderen Informationen Sie möglicherweise benötigen. Bitte fragen Sie nach weiteren Informationen. Ich bin ratlos, warum eine lokale Verbindung so viel langsamer ist.


Ssh- und Datenbankverbindungen zu diesem Computer sind also langsam. Handelt es sich also eher um ein Netzwerkproblem als um ein Datenbankproblem? Ich würde zuerst die Routing-Tabelle und eine Nichtübereinstimmung zwischen der physischen Geschwindigkeit der Schnittstelle und dem Switch-Port überprüfen.
Paul

@ Paul danke - konnte das Problem dank Wireshark, Google und Ubuntus Bug-Tracking-Website aufspüren
Jon

Antworten:


3

Ich habe mit Wireshark den Verbindungsverkehr überprüft und eine Reihe von MDNS-Anfragen gefunden, die fehlgeschlagen zu sein schienen.

Anschließend bin ich auf diesen Fehler mit der Ubuntu Name Service Switch-Konfiguration gestoßen und habe die /etc/nsswitch.confDatei so geändert , dass als letzte Möglichkeit mDNS verwendet wird, wie auf der Seite Ubuntu Server Network Configuration beschrieben .

Das Neustarten der erforderlichen Dienste (MySQL, SSH) beschleunigte alles wie von Zauberhand!

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.