写点什么

【架构师训练营】第七期笔记

用户头像
云064
关注
发布于: 2020 年 07 月 22 日

性能测试

 

性能测试是性能优化的前提和基础,也是性能优化结果的检查和度量标准。

 

主观:用户感受到的性能(用户体验)

 

客观:性能指标衡量的性能

 

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

 

响应时间:系统发出请求开始到收到最后响应数据需要的时间(系统的快慢)

并发数:系统能够同时处理请求的数目(负载特性)

吞吐量:单位时间内系统处理的请求数量(系统的处理能力)

 

吞吐量=并发数/响应时间(s)

 

性能计数器:服务器数据指标(System Load(正在执行和等待执行的进程数)、对象与线程数、内存使用、CPU、磁盘、网络IO)

 

性能测试方法:性能测试、负载测试、压力测试、稳定性测试

 





性能优化

 

一般方法:

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

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

  • 架构与代码分析,寻找性能与资源瓶颈关键所在

  • 架构与代码优化,优化关键技术点,平衡资源利用

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

 

进程

进程的运行期状态: 运行、就绪(获得了除CPU之外的所需资源)、阻塞(正在等待某一事件发生)

 

避免阻塞引起的崩溃

  • 限流:控制请求数

  • 降级:关闭部分功能程序的执行

  • 避免阻塞:异步IO,无临界区

 

锁 CAS(V,E,N)



  • 偏向锁、轻量级锁、重量级锁

  • 总线锁与缓存锁

  • 公平锁、非公平锁

  • 可重入锁

  • 独享锁、互斥锁、共享锁、读写锁

  • 乐观锁、悲观锁

  • 分段锁

  • 自旋锁



网络通信协议



Web请求的一次网络通信历程



OSI七层模型、TCP/IP四层模型



数据库



数据库架构



PrepareStatement:预先提交带占位符的SQL到数据库进行预处理,提前生成执行计划,效率更高



聚簇索引(主键ID和所在记录行存储在一个B+树中)



非聚簇索引(数据保存在外部,需要回表)



数据库事务(ACID):

  • 原子性(Atomicity):事务要么全部完成,要么全部取消

  • 隔离性(Isolation): 两个事务同时运行,不管谁先结束,最终结果都是相同的

  • 持久性(Durability): 一旦事务提交,不管发生什么,数据要保存在数据库中

  • 一致性(Consistency): 只有合法的数据才能写入数据库



用户头像

云064

关注

还未添加个人签名 2018.05.24 加入

还未添加个人简介

评论

发布
暂无评论
【架构师训练营】第七期笔记