写点什么

【第七周】性能优化(一)

用户头像
云龙
关注
发布于: 2020 年 11 月 08 日

性能测试


  • 视角

  • 主观视角:用户感受到的性能

  • 客观视角:性能指标衡量的性能

  • 网站性能测试的主要指标:

  • 响应时间: 发出请求到收到响应数据所需时间,反映系统的快慢

  • 并发数:同时处理请求的数目, 反映系统的负载特性

  • 吞吐量: 单位时间内系统处理的请求数量,体现系统的处理能力。

  • TPS: 每秒事务数

  • HPS:每秒 http 请求数

  • QPS: 每秒查询数

  • 吞吐量 = (1000 /响应时间 ms)*并发数

  • 性能计数器:描述服务器或操作系统性能的一些数据指标, System Load、对象与线程数、内存使用、CPU 使用、磁盘与网络 I/O 等

  • 分类:

  • 性能测试

  • 负载测试

  • 压力测试

  • 稳定性测试



  • 全链路压测

  • 数据构造


  • 数据隔离

  • 逻辑隔离:数据放一起,但通过特殊的标识能否区分

  • 虚拟隔离:不真正写数据

  • 物理隔离:数据不放一起

  • 流量构造

  • 平台化


性能优化


  • 基本原则:

  • 不能优化一个没测试的软件

  • 不能优化一个不了解的软件

  • 主要指标: 响应时间、并发数、吞吐量、性能计数器

  • 一般方法:

  • 性能测试,获得性能指标

  • 指标分析,发现性能与资源瓶颈点

  • 寻找性能与资源瓶颈关键所在

  • 优化关键技术点,平衡资源利用

  • 性能测试,进入性能优化闭环

  • 分层思想:

  • 机房与骨干网络

  • 服务器与硬件:

  • 操作系统

  • 虚拟机

  • 基础组件

  • 软件架构

  • 软件代码

  • 三板斧

  • 缓存:主要优化读操作

  • 异步:通过消息队列 主要优化写操作

  • 集群:使用很多台服务器对使用者看起来像一台服务器

  • 软件代码性能优化

  • 并发编程, 多线程与锁

  • 资源复用,线程池与对象池

  • 异步编程,生产者消费者模型

  • 数据结构, 数组、链表、hash 表、树


  • 锁原语 CAS

  • CAS(v,e,n): if (v=e):v=n

  • 系统原语,不允许被中断

  • 偏向锁

  • 轻量级锁

  • 重量级锁

  • 总线锁

  • 缓存锁

  • 公平锁

  • 非公平锁

  • 可重入锁

  • 互斥锁

  • 共享锁

  • 读写锁

  • 乐观锁

  • 悲观锁

  • 分段锁

  • 自旋锁


用户头像

云龙

关注

还未添加个人签名 2018.03.30 加入

还未添加个人简介

评论

发布
暂无评论
【第七周】性能优化(一)