【架构师训练营】第七期笔记
性能测试
性能测试是性能优化的前提和基础,也是性能优化结果的检查和度量标准。
主观:用户感受到的性能(用户体验)
客观:性能指标衡量的性能
性能指标:响应时间、并发数、吞吐量、性能计数器
响应时间:系统发出请求开始到收到最后响应数据需要的时间(系统的快慢)
并发数:系统能够同时处理请求的数目(负载特性)
吞吐量:单位时间内系统处理的请求数量(系统的处理能力)
吞吐量=并发数/响应时间(s)
性能计数器:服务器数据指标(System Load(正在执行和等待执行的进程数)、对象与线程数、内存使用、CPU、磁盘、网络IO)
性能测试方法:性能测试、负载测试、压力测试、稳定性测试
性能优化
一般方法:
性能测试,获得性能指标
指标分析,发现性能与资源瓶颈点
架构与代码分析,寻找性能与资源瓶颈关键所在
架构与代码优化,优化关键技术点,平衡资源利用
性能测试,进入性能优化闭环
进程
进程的运行期状态: 运行、就绪(获得了除CPU之外的所需资源)、阻塞(正在等待某一事件发生)
避免阻塞引起的崩溃
限流:控制请求数
降级:关闭部分功能程序的执行
避免阻塞:异步IO,无临界区
锁 CAS(V,E,N)
偏向锁、轻量级锁、重量级锁
总线锁与缓存锁
公平锁、非公平锁
可重入锁
独享锁、互斥锁、共享锁、读写锁
乐观锁、悲观锁
分段锁
自旋锁
网络通信协议
Web请求的一次网络通信历程
OSI七层模型、TCP/IP四层模型
数据库
数据库架构
PrepareStatement:预先提交带占位符的SQL到数据库进行预处理,提前生成执行计划,效率更高
聚簇索引(主键ID和所在记录行存储在一个B+树中)
非聚簇索引(数据保存在外部,需要回表)
数据库事务(ACID):
原子性(Atomicity):事务要么全部完成,要么全部取消
隔离性(Isolation): 两个事务同时运行,不管谁先结束,最终结果都是相同的
持久性(Durability): 一旦事务提交,不管发生什么,数据要保存在数据库中
一致性(Consistency): 只有合法的数据才能写入数据库
评论