架构 构建高性能的网站

目的

  性能调优的步骤

  按模块调优的基本方案

  性能调优的一般性原则

  性能调优的常用方案

性能调优的步骤

  1 衡量系统现状(通过性能测试得到性能指标)

  2 设定调优目标

  3 寻址性能瓶颈

  4 性能调优(本节内容)

  5 调优完毕后,衡量是否达到目标 

 

主要针对每个模块进行优化,前端优化,浏览器优化,代码优化,存储优化(注意:方案不是直接套用,需结合实际业务场景来确定较为合适的方案)

每个模块的优化方案

  1 前端优化 网站业务逻辑之前的部分

  2 浏览器优化 减少http请求数,使用浏览器缓存,启用压缩,CSS,JS位置,JS异步,减少cookie传输,CDN加速,反向代理

  3 代码优化 多线程,资源复用(对象池,线程池),良好的数据结构,JVM调用,单例,cache等

  4 存储优化 缓存,固态硬盘,光纤传输,优化读写,磁盘冗余,分布式存储(hdfs),nosql(非结构化)

 

性能调优的一般性原则

  1 依赖数据而不是凭空猜测(第一原则) 当怀疑性能有问题时,应该通过测试,日志,profile来分析(系统资源,程序代码,服务器配置) 确定性能瓶颈

  2 忌过早优化

  3 忌过度优化

  4 性能优化是持久战

  5 选择合适的衡量标准,测试用例,测试环境(客观反映性能的实际情况)

 

性能调优的常用方案

  1 缓存 没有什么性能问题是缓存解决不了的,如果有,那就再加一级缓存(典型的空间换时间)

  2 并发 一个人干不完的活,那就找两个人干(增加了系统的吞吐,减少了用户的平均等待时间) 粒度(多机器,多进程,多线程)

    2.1 无状态服务 采用集群

    2.2 有状态服务 每个节点提供同样的数据或每个节点只提供部分数据

  3 惰性 将计算推迟到必须的时刻(很可能避免了多余的计算,甚至根本不用计算)

  4 批量 合并,在IO(网络IO,磁盘IO)的时候,合并操作,批量操作往往能提升吞吐,提高性能

  5 使用成熟方案 空间换时间,时间换空间

  6 缩小解空间 在一个更小的数据范围内进行计算,而不是遍历全部数据,最常用的是索引

猜你喜欢

转载自www.cnblogs.com/hpzhu/p/10112306.html