前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >又见MTU问题导致页面加载缓慢

又见MTU问题导致页面加载缓慢

作者头像
richard.xia_志培
发布2022-11-30 15:08:44
9820
发布2022-11-30 15:08:44
举报
文章被收录于专栏:PT运维技术PT运维技术

问题描述:

管理后台无法正常打开,如图所示,其他的同事一直处于这个状态,但其中一个同事可以正常打开。

加载的进度卡在一个JS的文件上,URL为:

https://prod-a5b3f5w2d3-xxxx.go.akamai-access.com/static/js/chunk-libs.72e86335.js

该JS的大小为994k, 非常大, 每次加载都不完全。

解决问题:

出于对EAA尿性的了解(也无权限去深入去追查),觉得文件太大,会导致文件下载缓慢,或者造成stalled, 因此第一反应就是去减少文件的大小(增加gzip压缩)。

从请求头,响应头中,看到确实开启了gzip, 但是大小并没有减少,通过命令行curl 带上压缩的请求头去请求,经过验证,请求的文件并没有压缩。

检查openresty的配置文件,果然缺少对application/javascript的支持。

调整如下配置后:(前端、后端的openresty调整配置)

然后再次请求,问题解决。

深入分析:

但是通过这种绕行的方式确实解决了问题,但是问题的根本原因还不清楚,否则后面可能会出现类似或者由此导致的其他的问题。于是继续跟踪下去。

访问ops-web的路径为:

EAA-client -----> akamai EAA cloud ---> EAA agent ---> Endpoint service ----> NLB ---> openresty

路径较长,无法确定问题在哪个环节,经询问,同事告诉在openresty上下载文件,无问题,于是在

openresty服务器上tcpdump抓包。

异常的时候:

1. 接收端提示滑动window已经满

2. 发送端 ack=1004, 说明接收端(浏览器端) 只收到1004字节。

3. 三次握手的时候,MSS两端不一致(一个为8645,一个8961)。

考虑公有云,ICMP的差错报文被禁止(无法捕获协议栈的差错报文),因此PMTU的机制无法运作。

基于以上条件的判断,openresty的前面链路中的MTU 不匹配导致问题【MTU小于 openresty,导致openresty响应报文在分片后的在NLB端无法有效组装TCP分片).

由于openresty的上游是NLB,因此问题出现在 终端节点 -----》 终端节点服务(NLB) 环节,

经过查找AWS相关文档:

根因分析到此结束。

问题展望

联想到增加发生过的问题(特别是历史遗留下来的):

1. 曾经开发同学,反馈git clone 代码时而正常,时而异常, 甚至git clone出来的某些文件是不完整的,他们的相同点:git的访问链路 和 当前的 访问链路 一样,是否需要做同样的优化调整?, 类似场景的配置都需要重点排查。

2. 终端节点在大量使用的场景下,网络层的精细化监控需要补齐

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-07-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PT运维技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题描述:
  • 解决问题:
  • 深入分析:
  • 问题展望:
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档