我们有一个随机在Chrome浏览器中content download
时间很长的API,它总是在Firefox中运行良好,只需要几ms
。 响应大小为20kb未压缩和4kb压缩。 相同的请求也使用curl正常工作。
我们尝试过的东西:
If-None-Match
标题以禁用浏览器的caching响应。 相同的请求有时在Chrome上运行良好,但随机返回非常高的内容下载时间。
我们无法理解这个问题的根源。 还有什么其他的事情可以尽量减less这个时间?
我在这里提出了三个要求,第三个要求花了最多时间(在最后一个峰之前)。 CPU似乎并没有在一段较长的时间内达到最大。 大部分时间都是空闲时间。
此外,使用Replay XHR
菜单重放呼叫时,内容下载周期将从2秒下降到200毫秒。
我想你可能做错了
从根本上讲,如果这真的只发生在Chrome浏览器,那么可能是客户端代码是责怪,其中你不透露任何细节。
否则,你正试图用前端工具来调试你作为后端条件(基于nginx标签的选择)呈现的内容:
你有没有尝试过使用tcpdump(8)
来解决这个问题? 什么数据包交换和在什么时候?
您是否尝试过记录nginx接收和处理请求的时间? 例如$request_time
?
服务器在哪里? 也许你正在经历丢包,这可能需要超时和重传一些TCP数据包,这总是会引入一个随机延迟?
最后,最后一个可能性是这个字段并不意味着你的想法 – 这听起来像是CPU负载的一个命中,因为这是XMLHTTPRequest
( XHR
)处理的结果 – 也许你运行一些广告与用户跟踪,随机消耗大量的CPU,放慢你的指标?