本文持续更新中。
目的:从事软件性能优化相关工作5年多了,在此总结分享一下网站项目性能优化实战经验。
背景:当你负责公司网站运维时往往会遇到以下场景:领导要你维护一个开发人员赶工期开发出来的一个网站,而这个网站往往bug多,更没有经过什么性能优化。网站上线以后用的人一多就会面临页面卡顿。有时候甚至会导致服务器cpu、流量、内存、硬盘跑满而宕机的情况。这个时候就需要你对这个网站进行性能优化。
性能优化遵循的两个原则:木桶效应与二八定律
这是我总结的两个原则,理解这两个原则,可以帮助你在性能优化过程中省时省力抓住重点有的放矢。
木桶效应:
生活中,一只木桶的盛水量,取决于桶壁上最短的那块。软件中,一个软件的运行流畅程度,取决于运行速度最慢的环节。
举例:一个网站性能的短板可能是服务器硬件条件差、数据库表设计不合理、程序员喜欢在for循环里连接数据库、视频图片文件太大加载慢、
木桶效应告诉我们,性能优化的过程往往是:先找出最短短板,然后给他加长,然后再找下一块最短的短板,再加长,循环往复。
二八定律:
生活中,世界上80%的财富掌握在20%的人手里。软件中,一个软件的性能由20%的环节所决定。
举例:一个网站一定有常用功能和不常用功能,这些常用功能往往只占整个网站功能的20%甚至更少。
二八定律告诉我们性能优化时的重点应该放在这20%的功能里。
网站性能优化实战篇
接下来,我在此,根据木桶效应与二八定律,分享一下我再运维时是如何快速优化一个网站的性能的。以下是我梳理的性价比从高到低的性能优化方案。
第一步:压缩文本
一个网站占比最多的内容就是文本,前后端也都是通过json文本进行网络传输。文本压缩,可以最大程度地减少通过网络传输的字节数,所以使用文本压缩是一个可以短时间内快速提升网络响应速度的方式。
我一般用gzip压缩。
第二步:压缩图片
第三步:使用缓存