我們有一個基於第 3 方應用程式的產品,在連接到 firebird (v2.5.3) 資料庫的 apache 伺服器上運行。
不幸的是,當用戶嘗試向伺服器發出請求時,我們遇到了超時問題。當打開 devtools->network 選項卡時,我們看到資料包被丟棄。
為了調試這個問題,我們記錄了伺服器上的wireshark流量,我們看到很多重傳事件。一些 http 資料包可以正常傳遞,但有些資料包會重新傳輸,我懷疑這是導致超時的原因。
伺服器cpu高(50-100%),主要是因為firebird資料庫。託管伺服器的雲端供應商沒有 SSD 磁碟,我們知道這可能是一個問題。
一件奇怪的事情是,在wireshark記錄中我們看不到來自用戶的http請求。這是它查找收到的資料包的方式:
當我嘗試捕獲來自某個失敗的特定 IP 的請求時,我只收到 TCP 重新傳輸(因此我看不到請求本身)。不確定它是否重要,但連接位於連接埠 443 上。
是否有可能因為 firebird 資料庫繁忙/cpu 高,即使沒有在wireshark 中註冊http 請求,http 資料包也會被丟棄在較低的位置(4-5 秒後)?
由於我們無法將磁碟更改為 SSD,您認為升級 CPU 可能有助於解決此問題嗎?
是否有任何 apache 或 firebird 配置可以提高效能?
我可以嘗試收集任何其他資訊以獲得有關該問題的更多資訊嗎?