接口响应很快,页面呈现却很慢,咋回事?当事人更清楚
新项目白天发版部署到生产环境后,到了晚上,大家都发现了一种烦人的情况:oms后台系统,点击其中几个功能页,页面加载变得非常慢,一直转圈圈。
为什么呢?查看生产的log,发现oms服务端每个接口在调用的开始处记日志了。而在走完接口逻辑返回时,并没有打印日志。我们就无从知道接口的duration了。
到底是不是服务端的接口慢呢?用Postman模拟请求,发现很快。
这时,小组里另一个同事说oms并不慢,还录制了屏幕的操作(新冠肺炎疫情下,大家在家办公)发到qq讨论组里。
而我们几个在点击的时候,的确是慢。
后来才发现,原来是有的页面快,有的页面慢,而慢的那几个页面呢,是图片加载的问题。———开发这几个页面的小哥们也发现了————那几个页面查询结果里每一行都要显示两张证件照片,通过F2浏览器调试器发现,加载每一张照片耗时都超长,因为这些图片加载慢导致了整个页面响应也超级超级慢。
【那到底为什么加载图片慢呢?】
这些图片在生产的fastdfs服务器都不存在的,因为生产db的数据是从测试db初始化复制过来的。ie里请求如下fastdfs图片链接:http://oms.boss.shenbianhui.cn/fimage/group1/M00/00/0C/wKgoVF5hucKAQxHcAABJEO8Ld0Y92.JPEG, 浏览器转了半天,结果是 502 Bad Gateway ;ie里请求如下fastdfs图片链接:http://oms.boss.shenbianhui.cn/fimage/group1/M00/00/0B/wKgoVF5hpvmAPXpBAABWI5BcW0Y60.JPEG, 浏览器转了半天,结果是 504 Gateway Time-out 。
然而,我们通过前端上传一张图片到fastdfs服务器,这时,在ie里访问这个图片链接 http://oms.boss.shenbianhui.cn/fimage/group1/M00/00/02/CgAC3V5iPMaAD1c-AAAUQnWiKAg69.JPEG ,浏览器响应很快。
那么,难道图片不存在,响应就会很慢吗?修改上面那张已存在的图片的名字,比如改成 http://oms.boss.shenbianhui.cn/fimage/group1/M00/00/02/gAC3V5iPMaAD1c-AAAUQnWiKAg.JPEG ,虽然图片也不存在,但是很快就能收到404的响应。
那么,跟前面的fastdfs路径有关系吗?来回调换,也没什么规律。
不懂为什么那些原本不存在的照片那么慢!想知道原因,得分析fastdfs源码了吧,也许跟Nginx配置有关系。
附上以下情况:
-- 1. 原本在fastdfs上不存在的。响应码 50x
http://oms.boss.shenbianhui.cn/fimage/group1/M00/00/0C/wKgoVF5hucKAQxHcAABJEO8Ld0Y92.JPEG
http://oms.boss.shenbianhui.cn/fimage/group1/M00/00/0B/wKgoVF5hpvmAPXpBAABWI5BcW0Y60.JPEG
-- 2. 新上传到fastdfs上的
http://oms.boss.shenbianhui.cn/fimage/group1/M00/00/02/CgAC3V5iPMaAD1c-AAAUQnWiKAg69.JPEG
-- 3. 基于上面两种,拼出来的下面的url
-- 3.1 很快响应400 Bad Request
http://oms.boss.shenbianhui.cn/fimage/group1/M00/00/02/gAC3V5iPMaAD1c-AAAUQnWiKAg.JPEG
-- 3.2 响应很慢 502 Bad Gateway
http://oms.boss.shenbianhui.cn/fimage/group1/M00/00/02/wKgoVF5hucKAQxHcAABJEO8Ld0Y92.JPEG
-- 3.3 很快响应404
http://oms.boss.shenbianhui.cn/fimage/group1/M00/00/0C/CgAC3V5iPMaAD1c-AAAUQnWiKAg69.JPEG
结束!
相关文章
- JavaWeb_响应和请求数据包
- 在手势中屏蔽响应事件继续向父视图传递
- Vue2/3响应式原理实现
- 响应式与瀑布流
- flask框架-请求和响应
- Qt编写网络摄像头推流(4路1080P主码流只占用0.2%CPU/极低延时极速响应)
- System.ServiceModel.CommunicationException: 接收HTTP 响应时发生错误
- 前端面试题:http 常见的响应状态码 ?
- SAP UI5 里响应式表格的 minScreenWidth 属性讲解
- Angular如何响应DOM event
- Qt 保持GUI响应的几种方法
- Qt保持GUI响应的几种方法
- JAVA基础之HttpServletResponse响应
- 超过响应缓冲区限制
- android 防止多次点击,它会导致事件侦听响应于其他接口
- 2.Windows应急响应:FTP暴力破解
- 封装axios中请求响应数据加解密
- 23. 如何给 SAP ABAP SEGW 开发的 OData 服务添加 Access-Control-Allow-Origin 响应头