zoukankan      html  css  js  c++  java
  • 接口响应很快,页面呈现却很慢,咋回事?当事人更清楚

    新项目白天发版部署到生产环境后,到了晚上,大家都发现了一种烦人的情况: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

     

    结束!

  • 相关阅读:
    7. 初识Python之函数
    6. 初识Python之dict和set
    5. 初识Python之循环语句
    4. 初识Python之条件语句
    3. 初识Python之列表
    原生js实现一个小小的轮波
    原生js实现弹幕
    js实现一个简单的学生管理系统
    js绘制时钟
    js实现的学生管理系统
  • 原文地址:https://www.cnblogs.com/buguge/p/12431009.html
Copyright © 2011-2022 走看看