寻找 TCP 重传的根本原因

寻找 TCP 重传的根本原因

我们有一个基于第三方应用程序的产品,运行在连接到 firebird(v2.5.3)数据库的 apache 服务器上。

不幸的是,当用户尝试向服务器发出请求时,我们遇到了超时问题。打开 devtools->network 选项卡时,我们看到数据包被丢弃了。

为了调试此问题,我们在服务器上记录了 wireshark 流量,发现有很多重传事件。一些 http 数据包可以正常传输,但有些数据包会发生重传,我怀疑这是导致超时的原因。

服务器 CPU 过高(50-100%),主要是因为 Firebird 数据库。托管服务器的云提供商没有 SSD 磁盘,我们知道这可能是一个问题。

奇怪的是,在 wireshark 记录中我们看不到来自用户的 http 请求。它查找收到的数据包的方式如下:

在此处输入图片描述

当我尝试捕获来自某个特定 IP 的失败请求时,我只得到了 TCP 重传(因此我看不到请求本身)。不确定这是否重要,但连接在端口 443 上。这是它的示例:

在此处输入图片描述

  1. 是否可能因为 firebird 数据库繁忙/CPU 较高,导致 http 数据包在较低速度下(4-5 秒后)被丢弃,即使没有在 wireshark 中注册 http 请求?

  2. 由于我们无法将磁盘更改为 SSD,您认为升级 CPU 是否有助于解决这个问题?

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

我可以尝试收集其他信息以获取有关该问题的更多信息吗?

相关内容