Zufällige dreiminütige Verzögerung bei der Verbindung zum Datenbankserver

Zufällige dreiminütige Verzögerung bei der Verbindung zum Datenbankserver

Wir verwenden InterBase auf einem Windows 2003-Server und in unregelmäßigen Abständen dauert die Clientverbindung zum Server 180 Sekunden (drei Minuten) länger als üblich. Die Anwendung „hängt“ nicht mit der normalen Windows-Warnung in der Titelleiste und läuft nach der Verzögerung problemlos weiter.

Nun scheint die Rate gestiegen zu sein, seit einige Windows 2008-Server zum Netzwerk hinzugefügt wurden.

Da andere Anwendungen im Netzwerk keine ähnlichen „Hänger“ aufweisen, vermute ich, dass es an der (virtuellen) Maschine oder am Serverprozess selbst liegt. Wir verwenden dieselbe InterBase-Datenbank-Client- und Serversoftwareversion in einem anderen Netzwerk ohne Probleme, daher ist mein erstes Interessengebiet das Netzwerk (TCP/IP) der Maschine. Aus demselben Grund glaube ich nicht, dass es sich um ein DNS-Problem handelt, oder ist dies ein weiterer Kandidat?

Gibt es mögliche technische Erklärungen für eine solche Verzögerung, beispielsweise als Folge einer vollen Netzwerkpufferwarteschlange?

netstat -s zeigt erfolglose Verbindungsversuche an und weist auf den Empfang von null verlorenen Datagrammen hin.

IPv4-Statistik

  Empfangene Pakete                    = 1267651308
  Empfangene Vorspannfehler            = 0
  Empfangene Adressfehler              = 44827
  Weitergeleitete Datagramme           = 0
  Empfangene unbekannte Protokolle     = 0
  Empfangene verworfene Pakete         = 0
  Empfangene übermittelte Pakete       = 1267651006
  Ausgabeanforderungen                 = 1097296840
  Verworfene Routingpakete             = 0
  Verworfene Ausgabepakete             = 0
  Ausgabepakete ohne Routing           = 0
  Reassemblierung erforderlich         = 14
  Reassemblierung erfolgreich          = 7
  Reassemblierung erfolglos            = 0
  Erfolgreiche Datagrammfragmentierung = 7
  Erfolglose Datagrammfragmentierung   = 0
  Erzeugte Fragmente                   = 14

ICMPv4-Statistik

                            Empfangen Gesendet
  Meldungen                 26579       26678
  Fehler                    0           0
  Ziel nicht erreichbar     0           95
  Zeitüberschreitung        0           0
  Parameterprobleme         0           0
  Quelldrosselung           0           0
  Umleitungen               0           0
  Echos                     60          26523
  Echoantworten             26519       60
  Zeiteinträge              0           0
  Zeiteintragantworten      0           0
  Adressmasken              0           0
  Adressmaskenantworten     0           0

TCP-Statistik für IPv4

  Aktiv geöffnet                      = 69080
  Passiv geöffnet                     = 16751143
  Erfolglose Verbindungsversuche      = 363
  Zurückgesetzte Verbindungen         = 633
  Aktuelle Verbindungen               = 11
  Empfangene Segmente                 = 1265427823
  Gesendete Segmente                  = 1096717835
  Erneut übertragene Segmente         = 570293

UDP-Statistik für IPv4

  Empfangene Datagramme = 2136945
  Keine Anschlüsse      = 98648
  Empfangsfehler        = 2680
  Gesendete Datagramme  = 50088

Antwort1

Eines der Dinge, nach denen ich immer suche, wenn ich sehe, dass eine Verbindung hängt, ist ein Fehler bei der umgekehrten DNS-Suche. Viele Anwendungen versuchen, den DNS-Namen eines verbindenden Clients direkt nach der Socket-Akzeptanz auf der Serverseite aufzulösen. Wenn DNS nicht richtig aufgelöst wird, kann es zu einem Hängen kommen, nach dem alles scheinbar normal und ohne Probleme weiterläuft. Ich habe dies bei einer Vielzahl von Anwendungsdiensten gesehen. Die von Ihnen erwähnte Zeitverzögerung von 3 Minuten scheint für dieses Szenario etwas lang zu sein. Die typische Verbindungsverzögerung, die ich sehe, beträgt weniger als 1 Minute.

Antwort2

Das Problem verschwand, als wir den Datenbankserver neu installierten.

verwandte Informationen