Laden...

MySQL Connection dauert 8 sec

Erstellt von dass vor 15 Jahren Letzter Beitrag vor 15 Jahren 3.766 Views
D
dass Themenstarter:in
122 Beiträge seit 2006
vor 15 Jahren
MySQL Connection dauert 8 sec

Hi,

ich verwende folgende Umgebung:

Windows Server 2008 64 bit 4 GB RAM, MySQL Server 5 (64bit)

Client verbindet sich über eine 6MBit DSL-Leitung mit der Datenbank.

Alleine die Connection dauert 8 Sekunden ohne auch nur einen Datensatz gelesen zu haben. Den Client habe ich auch mal gewechselt, aber ohne Erfolg.

Die Connection wird genau so aufgebaut, wie auf Mysql.de beschrieben. Keine Chance. Nehme ich aber die selbe Datenbank und packe sie auf ein Windows 2003 Server dauert die Verbindung 0,1 s. Jetzt drängt sich mir der Verdacht auf, dass es irgendwelche Einstellungen auf dem W2K8 Server gibt, die eine schnelle Verbindung verhindern.

Kennt sich da jemand aus.

Vielen Dank und schöne Grüße

M
221 Beiträge seit 2008
vor 15 Jahren

Wie greifst du auf die Datenbank zu?

  • .NET Connector
  • ODB
  • Ado.NET

?

D
dass Themenstarter:in
122 Beiträge seit 2006
vor 15 Jahren

.net connector

M
221 Beiträge seit 2008
vor 15 Jahren

Hast du schon mal die CPU Auslastung überwacht, bzw. MYSQL im LOG Modus gestartet?

Ich habe hier einen 2003er Server auch mit MYSQL 5.0 und kann die 0,1 Sekunden bestätigen. Jedoch muss es auch mitm 2008er reibungslos gehen!

Hab aber leider keinen hier zum testen!
Probier aber bitte mal obiges!

G
497 Beiträge seit 2006
vor 15 Jahren

die Internetverbindung ist ansonsten beidseitig unbelastet? Lokale Anmeldung ist ja schon mal gar keine Referenz, da ist ja nicht mal ein einziger Netzwerkadapter dazwischen. Bei einer Internetverbindung sind Netzwerkkarten und haufenweise Router dazwischen. Wenn dann noch über die Leitung runtergeladen wird (P2P-Programme sind da ganz besonders böse) oder die Gegenstelle (ich vermute, ein Hosting-Provider?) grad gut belastet ist, kann so eine Anmeldung schon eine ganze Zeit dauern.

D
dass Themenstarter:in
122 Beiträge seit 2006
vor 15 Jahren

Moin,

die Leitungsbelastung ist sehr gering, keinerlei Downloads oder gar Filesharing.

Der Ping liegt bei 30 ms.

Einen weiteren Test habe ich außerdem noch gemacht. MS SQL SERVER 2005 reagiert sofort auf abfragen nur leider der MySQL nicht. (Wohlgemerkt auf dem selben Server). Das selbe gilt auch für den IIS, der sehr schnell reagiert und die Seite anzeigt.

Außerdem habe ich die Firewall komplett deaktiviert, auch das hilft nicht.

Im Logfile stehen keinerlei Fehler drin oder irgendwas, was darauf schließen läßt, das es irgendwo klemmt.

Schöne Grüße

3.971 Beiträge seit 2006
vor 15 Jahren

Außer Server, Benutzer, Passwort, was gibts du noch in deinem Connection-String an? Eventuell useCompression?

Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...

D
dass Themenstarter:in
122 Beiträge seit 2006
vor 15 Jahren

Hi,

ich gebe nur noch die Datenbank an, worauf connected werden soll.

Was mir aber noch aufgefallen ist, dass im Log sekündlich show global status und show innodb status ausgeführt wird

Schöne Grüße

3.971 Beiträge seit 2006
vor 15 Jahren

Eventuell hast du in deiner my.cnf slowQuerylog an. Schalt das mal ab.

Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...

D
dass Themenstarter:in
122 Beiträge seit 2006
vor 15 Jahren

Habe ich gemacht, keine Besserung.

1.696 Beiträge seit 2006
vor 15 Jahren

Was sagt

tracert <zielserver>

Wieviele Hops braucht es, gibt's denn zwichendurch auch unerreichbare Knoten?

Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.

**:::

D
dass Themenstarter:in
122 Beiträge seit 2006
vor 15 Jahren

Er hat 13 Hops wobei alle erreichbar sind.

D
dass Themenstarter:in
122 Beiträge seit 2006
vor 15 Jahren

Ich habe noch etwas rausgefunden:

Der erste Connect ist sehr langsam (wie gesagt 8 sec) aber danach geht es sehr, sehr schnell. Ich habe langsam aber sicher den Verdacht, das das Pooling nicht hinhaut.

Schöne Grüße

F
10.010 Beiträge seit 2004
vor 15 Jahren

Da hast Du das aber genau falsch herum verstanden.

  1. MySql ist übers Netz ziemlich langsam, weshalb es da auch nicht wirklich tagt.

  2. Genau dafür ist doch pooling, weil eben die Anmeldung an Systemen manchmal
    ziemlich lange dauert wird nach der ersten erfolgreichen verbindung diese nicht
    wirklich geschlossen, sondern bei seite gelegt und dann bei der nächsten
    wieder benutzt.
    Aber dieser Pool gilt nur innerhalb eines egstrateten Prozesses.

D
dass Themenstarter:in
122 Beiträge seit 2006
vor 15 Jahren

Moin zusammen,

wior haben nun abschließend das Problem lokalisieren und beheben können. Hier nun für die Nachwelt:

Nachdem wir sämtliche Versionen von MySQL ab Version 4 getestet haben inkl. der Connectoren mussten wir feststellen, dass überall das Problem bestand. Also konnten wir einen Fehler an der Db ausschließen.

Nun kam der Server dran: Alle Firewalls abgeschaltet und "ungeschützt" versucht. Alle nicht lebenswichtigen Dienste abgeschaltet. Keine Besserung. Den Server konnten wir damit auch ausschließen.

Also konnte es nur noch an der Konfiguration liegen, da wir die Verbindung zur Db von vornherein ausschließen konnten.

In der Konfiguration gibt es den unscheinbaren Eintrag Disable Name Resolving (zu finden unter MySQL Administrator --> Startvariablen --> Erweitertes Netzwerk ganz unten) , der nicht aktiviert war. Diesen haben wir aktiviert und siehe da .... Nach einen Db-Neustart sind wir runter von ca. 8 Sek auf 750 ms. Also dauerte die Namensauflösung sehr lange. Diese Namensauflösung am MySQL besagt, dass MySQL zur IP des Clients, der sich gerade versucht zu verbinden, den Namen ermittelt, was in der Regel überflüssig ist.

Schöne Grüße