接口响应很快,页面呈现却很慢,咋回事?当事人更清楚

新项目白天发版部署到生产环境后,到了晚上,你们都发现了一种烦人的状况:oms后台系统,点击其中几个功能页,页面加载变得很是慢,一直转圈圈。前端

 

为何呢?查看生产的log,发现oms服务端每一个接口在调用的开始处记日志了。而在走完接口逻辑返回时,并无打印日志。咱们就无从知道接口的duration了。浏览器

 

究竟是不是服务端的接口慢呢?用Postman模拟请求,发现很快。 服务器

 

这时,小组里另外一个同事说oms并不慢,还录制了屏幕的操做(新冠肺炎疫情下,你们在家办公)发到qq讨论组里。测试

而咱们几个在点击的时候,的确是慢。ui

后来才发现,原来是有的页面快,有的页面慢,而慢的那几个页面呢,是图片加载的问题。———开发这几个页面的小哥们也发现了————那几个页面查询结果里每一行都要显示两张证件照片,经过F2浏览器调试器发现,加载每一张照片耗时都超长,由于这些图片加载慢致使了整个页面响应也超级超级慢。url

 

【那到底为何加载图片慢呢?】3d

这些图片在生产的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的响应。blog

那么,跟前面的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

 

 

结束!

相关文章
相关标签/搜索