尋找 TCP 重傳的根本原因

尋找 TCP 重傳的根本原因

我們有一個基於第 3 方應用程式的產品,在連接到 firebird (v2.5.3) 資料庫的 apache 伺服器上運行。

不幸的是,當用戶嘗試向伺服器發出請求時,我們遇到了超時問題。當打開 devtools->network 選項卡時,我們看到資料包被丟棄。

為了調試這個問題,我們記錄了伺服器上的wireshark流量,我們看到很多重傳事件。一些 http 資料包可以正常傳遞,但有些資料包會重新傳輸,我懷疑這是導致超時的原因。

伺服器cpu高(50-100%),主要是因為firebird資料庫。託管伺服器的雲端供應商沒有 SSD 磁碟,我們知道這可能是一個問題。

一件奇怪的事情是,在wireshark記錄中我們看不到來自用戶的http請求。這是它查找收到的資料包的方式:

在此輸入影像描述

當我嘗試捕獲來自某個失敗的特定 IP 的請求時,我只收到 TCP 重新傳輸(因此我看不到請求本身)。不確定它是否重要,但連接位於連接埠 443 上。

在此輸入影像描述

  1. 是否有可能因為 firebird 資料庫繁忙/cpu 高,即使沒有在wireshark 中註冊http 請求,http 資料包也會被丟棄在較低的位置(4-5 秒後)?

  2. 由於我們無法將磁碟更改為 SSD,您認為升級 CPU 可能有助於解決此問題嗎?

  3. 是否有任何 apache 或 firebird 配置可以提高效能?

我可以嘗試收集任何其他資訊以獲得有關該問題的更多資訊嗎?

相關內容