我們在 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
當我們重新安裝資料庫伺服器後,問題就消失了。