正文
电商平台整套系统是从上海商派公司(ecshop)那里购买的整套代码,结合我们公司自己的二开功能的3.0版本在上周几经波折终於部署上去了,经过了一个周末之后,今天市场运营的人在微信群里叫:“官方网站打开速度好慢。”果然整个官网首页要5~6秒钟才打得开,这个显然是不能忍受的,使用F12查看细节,发现Waiting(TTFB)
的时间非常长,如图:
正常来说TFFB时间通常建议在200ms以下,如果超过推荐值,会引起队列中其他资源下载都跟着变慢。TFFB高主要有两个原因:一是客户端和服务器之前网络情况比较差;二是服务器应用响应比较慢;第三:重定向太多,重定向跟TFFB时间成正比。
于是乎检查网络情况以及各应用负载情况,都是OK的,重定向也很少。那么就减少DNS查询,把所有能用IP的地方都替换了域名,比如nginx的localhost
里使用对应服务器的域名而不是127.0.0.1,比如在配置文件里的阿里云的数据库和redis都用IP地址替代。然而收效甚微,该慢依旧是慢。
这个时候就返回到后台去查看,左翻翻右翻翻,最后找到了这个地方,如图:
启动全页缓存,一切就都好了…
补充故障
前端妹子跑来问一个问题,界面上一个1.1k的js文件,为什么加载用248ms?如图:
可见大量时间都用在了Content Download
上,但是这个文件明明已经很小了。况且旁边还有150K左右的文件也用了不到80ms,可见应该不全是网络传输慢那么简单。
看了一下这个js的细节,发现这个js需要去访问阿里云的OSS资源。如图:
是不是时间花费在访问资源上了呢,于是我单独访问一下这个png图片,发现单独访问的时间根本不长:
这个js已经没有压缩的余地了,那么究竟是什么这么消耗时间?这个我要慢慢查,先把问题记录一下…