2020-07-18 19:46:09
新项目白天发版部署到生产环境后,到了晚上,大家都发现了一种烦人的情况: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
结束!
接口调用失败的退避策略
05-20
FileZilla上传文件到外网FTP服务器响应:550 Permission denied.
06-29
H61及以上主机如何关闭前置和后置USB接口
02-29
HDMI接口连接外接显示器后,如何设置外接显示器的声音设备负责声音输出
04-26
USB3.0和USB2.0接口的区别和特点
02-26
USB接口无法识别设备的解决方法
06-23
USB集线器电涌是怎么回事?
04-19
Win8.1中IE11打开vSphere Web Client,页面总是显示为英文
04-11
Zabbix使用Pycurl模块监控web页面状态
06-23
zuihou-admin-cloud 1.6 发布,支持自动生成前端页面
07-11
万全R510 3112服务器主板上的COM2接口线序介绍
05-11
什么是EFI(可扩展固件接口)
06-09
使用Displayport接口外接设备无法输出声音
06-17
使用awk来统计访问站点的响应状态码
06-12
如何将 Visio 绘图页面以树形列表显示?
02-19
如何解决 Tomcat 不能自动刷新静态页面的问题
03-03
如何隐藏Nginx版本号和Server响应头
02-12
安装USB 接口Z32打印机时,只能安装在LPT端口的一种解决方法
04-03
小新潮7000充电时麻手是怎么回事?
03-03
开机提示“由于启动计算机时出现了页面配置问题…”如何处理?
05-30