有老板跟我抱怨,网站慢,加了带宽还是慢。我说先别急着花钱,先把「谁慢」这件事搞清楚。大部分人慢的问题,根本不在带宽上。坐下来没两句话他就问,网站打开慢做了到底有没有用。我的判断是,先看这件事有没有人反对。
先分清是所有人都慢还是部分人慢
这一条最容易被跳过,但最省事。如果只有外地慢、本地快,问题多半在线路;如果所有人都慢,才往服务器和代码上找。
我们的做法是先让不同地方、不同网络的几个人同时打开,看谁慢,另外还有慢多少。本地和外省各找一个,对比最明显。几分钟的测试,能省掉几天的瞎猜。
还有一种情况是「时快时慢」。这种多半和访问高峰有关,要挑业务高峰的时候再测一次,才看得出真实情况。
图片和前端是最常见的原因
首页放几张没压缩的大图,几兆的文件传上去,再快的带宽也扛不住。一张原图就能拖慢整个页面,这是最常见也最容易改的问题。
我们的建议是图片压到合适尺寸再上传,手机上显示的图不需要几兆那么大。我们能把它压到两三百 k,肉眼基本看不出差别。
前端还有插件的问题。轮播、客服,还有统计代码全堆在页面上,互相争抢资源。该合并的合并,该延后加载的延后,页面会轻不少。
数据库慢查询藏在后面
前面都处理了还慢,再往数据库看。一条没有分页的查询把几万条数据全取出来,只为了显示前面二十条,这种慢最不值得。
我们的做法是先打开慢查询日志。看哪些语句耗时最长,再针对性地加索引或者改查询。别一上来就盲目加索引,索引多了写入反而更慢。
还有缓存。企业站的内容更新不勤,缓存打开收益很大。但缓存要配成「更新即清」,不然编辑发完文章自己看不到,反而添乱。
网站慢这块,客户最想弄明白的
网站打开一般几秒算正常
首屏三秒以内算及格,两秒以内算好。超过五秒,一半访客已经关页面了。
加带宽有用吗
只在带宽确实占满的时候有用。多数网站慢不是因为带宽不够,加钱不解决问题。
要不要上 CDN
访问量起来、用户分布广的网站值得上。小网站先压缩图片,性价比更高。
这话常斌说来像泼冷水:先看谁慢,再查图片,收尾才动服务器,跳一步就多熬两天。
按顺序排查,别跳步
我的建议是按「谁慢、图片、前端,以及数据库」这个顺序走一遍。多数网站在前两步就能找到病根。
做网站性能这块这块,信服无限最常劝客户的就是别急着花钱加配置。比价之前,把你网站的首页地址发我看看,几分钟就能给你排出问题出在哪一步。