什么是性能分析?什么是性能调优?
性能分析与调优旨在帮助打造成一个高可用、高可靠的系统;
性能分析:目的是找出性能瓶颈与风险在哪里?
性能调优:用更少的资源提供更好的服务,成本利益最大化。
服务端性能调优的常规手段有:
(1)空间换时间。缓存就是典型的空间换时间的例子。
(2)时间换空间。当空间成为瓶颈时,切分数据分批次处理,用更少的空间完成任务处理。如:上传大附件时经常用这种方式。
(3)分而治之。把任务切分,分开执行,也方便并行执行来提高效率。如:Hadoop中的HDFS、MapReduce就是这个原理。
(4)异步处理。业务链路上有任务时间消耗较长,可以拆分业务,减少阻塞影响。常见的异步处理机制有MQ(消息队列)。
(5)并行。用多个进程或者线程同时处理业务,缩短业务处理时间。如:我们在银行办业务时,如果排队人数较多时,银行会加开柜台。
(6)离用户更近一点。如:CDN技术,把用户请求的静态资源放在离用户更近的地方。
(7)一切可扩展,业务模块化、服务化(同时无状态化)、良好的水平扩展能力。
Web前端性能优化的方向一般是:
(1)页面静态优化。比如:新浪的新闻,先进行静态化然后提供访问,减小DB负担。
(2)更小。减小页面Size;图片变得更小;CSS合并;JS精简;压缩页面,如:利用Accept-Encoding:gzip;客户端缓存图片、样式以及JS。
(3)砍掉无用请求,无用数据传输。
(4)对数据做异步处理,事情分为多步,先完成优先级高的事情。
(5)只能DNS及CDN加速,让响应数据离用户更近,回避网络瓶颈。