在Chrome中随机高内容下载时间?

我们有一个随机在Chrome浏览器中content download时间很长的API,它总是在Firefox中运行良好,只需要几ms 。 响应大小为20kb未压缩和4kb压缩。 相同的请求也使用curl正常工作。

我们尝试过的东西:

  1. 禁用If-None-Match标题以禁用浏览器的caching响应。
  2. 尝试各种按压(gzip,deflate,br)。
  3. 禁用压缩。
  4. 禁用所有的Chrome扩展。

相同的请求有时在Chrome上运行良好,但随机返回非常高的内容下载时间。

我们无法理解这个问题的根源。 还有什么其他的事情可以尽量减less这个时间?

Chrome网络标签

我在这里提出了三个要求,第三个要求花了最多时间(在最后一个峰之前)。 CPU似乎并没有在一段较长的时间内达到最大。 大部分时间都是空闲时间。

性能图铬

此外,使用Replay XHR菜单重放呼叫时,内容下载周期将从2秒下降到200毫秒。

我想你可能做错了

从根本上讲,如果这真的只发生在Chrome浏览器,那么可能是客户端代码是责怪,其中你不透露任何细节。

否则,你正试图用前端工具来调试你作为后端条件(基于nginx标签的选择)呈现的内容:

  • 你有没有尝试过使用tcpdump(8)来解决这个问题? 什么数据包交换和在什么时候?

  • 您是否尝试过记录nginx接收和处理请求的时间? 例如$request_time

  • 服务器在哪里? 也许你正在经历丢包,这可能需要超时和重传一些TCP数据包,这总是会引入一个随机延迟?

最后,最后一个可能性是这个字段并不意味着你的想法 – 这听起来像是CPU负载的一个命中,因为这是XMLHTTPRequestXHR )处理的结果 – 也许你运行一些广告与用户跟踪,随机消耗大量的CPU,放慢你的指标?