我们在 Windows 2003 服务器上使用 InterBase,在随机间隔内,客户端与服务器的连接时间比平时长 180 秒(三分钟)。应用程序不会在标题栏中出现正常的 Windows 警告并“挂起”,延迟后仍可顺利继续运行。
现在,自从一些 Windows 2008 服务器被添加至网络以来,该速率似乎有所增加。
由于网络中的其他应用程序没有类似的“挂起”,我怀疑是(虚拟)计算机或服务器进程本身的问题。我们在不同的网络中使用相同的 InterBase 数据库客户端和服务器软件版本,没有任何问题,所以我首先感兴趣的是计算机的网络(TCP/IP)。出于同样的原因,我不认为这是 DNS 问题,或者这是另一个候选问题?
这种延迟是否存在可能的技术解释,例如由于网络缓冲区队列已满而导致的延迟?
netstat -s 显示不成功的连接尝试,接收到的丢弃数据报为零。
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
答案1
当我看到连接挂起时,我总是会寻找的一个原因是反向 DNS 查找失败。许多应用程序在服务器端接受套接字后立即尝试解析连接客户端的 DNS 名称。当 DNS 无法正确解析时,您可能会遇到挂起,之后一切似乎正常进行而没有问题。我在各种应用服务中都看到过这种情况。您提到的 3 分钟时间延迟对于这种情况来说确实有点长。我看到的典型连接延迟不到 1 分钟。
答案2
当我们重新安装数据库服务器时,问题就消失了。