记一次网站访问速度优化点查找过程

来源:互联网 发布:js cron 表达式生成器 编辑:程序博客网 时间:2024/05/19 15:39

基本情况:网站以前访问正常,突然阶梯性访问速度降到极低。
一个老的项目,我来公司之前就已经有了的。然后有一天客户说网站访问有问题。我就先用我的电脑访问了该网站,登录后功能正常(我的电脑操作系统MacOs,浏览器版本Chrome47)。所以我怀疑可能是客户网络问题,客户把ping值发给我,发现一切正常(1.7ms基本不丢包,后来才知道ping值和网络访问并不成正比,要看服务器下行网络宽带);为确定问题所在,我远程连接了客户的电脑,用他电脑的chrome来访问网站,确实是慢,登陆进去后页面的数据根本没加载出来,浏览器tag左上角一直处于加载状态。于是我打开了开发者工具,发现页面的js加载顺序没有按照我页面上写的来,而且94K的jquery-1.7.2.min.js本应是第一个加载的结果不是第一个,而且加载还失败了,刷新几次发现加载成功了,然后我单独开一个新的tag来加载这个jquery,发现和加载页面一样,没完没了,查看这个文件内容时发现文件是不全的。
我自身电脑加载正常,说明下行带宽没那么糟糕,而且客户ping值正常,打开其他网页速度也正常,说明客户网络没问题,于是我想到了是不是不同地域dns服务器域名解析除了问题,我把客户的dns分别改成了114.114.114.114和8.8.8.8发现并没有什么卵用。默认的是他自身路由的dns。这种情况让我一头雾水,
然后我用几个同事的电脑进行测试,win7全部出现这种情况,win10的edge正常,但win10的chrome和其他浏览器还是不行。
所以这些数据没办法评估问题所在位置。我把项目重新打开一套部署在我自己的服务器上,也是域名访问。让同事们帮我测试,发现一切正常,加载速度毫秒级。所以我觉得可能是服务器的问题。
我改用服务器的ip而不使用域名去访问,发现依旧很慢。服务器web访问入口是又nginx来做的,里面没进行域名反向代理,只做了80端口监听不同路径指定不同端口的tomcat。于是我采用域名加tomcat端口直接去访问项目。终于奇迹发生了,速度很快。所以我断定nginx的问题比较大,然后对比了这台服务器上的nginx配置和我自己服务器上的nginx配置,发现除了项目配置部分,其他基础配置都是一样的。而且这配置一年都没改过,我又陷入了迷茫,我去查看nginx的error.log和access.log发现日志到5月4号后就再也没有了,我怀疑nginx除了问题,就重启了,然并卵。然后查看下磁盘状态发现磁盘占用100%;难道是这个原因?为什么会影响到速度,满了就不写了呗。清理磁盘,问题解决。
什么CDN,各种项目加速的完全没用上,一般情况一般性的慢不会影响程序的访问,排查问题的过程是一种享受,如果你的网站突然出现这种情况,试试我的分享过程。