架构师训练营第七周总结
性能测试
性能测试指标
响应时间、并发数、吞吐量、性能计数器等
吞吐量 = ( 1000 / 响应时间ms ) × 并发数
性能测试方法
性能测试、负载测试、压力测试、稳定性测试
全链路压测
数据构造
数据隔离:逻辑隔离、虚拟隔离、物理隔离
流量构造
全链路压测平台化
性能优化
两个基本原则
你不能优化一个没有测试的软件
你不能优化一个你不了解的软件
性能测试的主要指标
响应时间:完成一次任务花费的时间
并发数:同时处理的任务数
吞吐量:单位时间完成的任务数
性能计数器:System Load,线程数,进程数,CPU、内存、磁盘、网络使用率
性能优化的一般方法
性能测试,获得性能指标
指标分析
架构与代码分析
架构与代码优化
性能测试,进入性能优化闭环
系统性能优化的分层思想
机房与骨干网络性能优化:异地多活、专线网络、自主CDN
服务器与硬件性能优化:更优的 CPU,磁盘,内存,网卡
操作系统性能优化
虚拟机性能优化
基础组件性能优化
软件架构性能优化:缓存、异步、集群
软件代码性能优化:并发编程、异步编程、资源复用、数据结构
操作系统
操作系统多任务运行环境
进程分时执行
进程的运行期状态
运行、就绪、阻塞
进程 VS 线程
进程:系统资源分配的最小单位
线程:CPU执行的最小单位
线程安全
临界区:多个线程访问共享资源的这段代码被称为临界区
使用锁来解决问题
阻塞导致高并发系统崩溃
锁(I/O)会引起线程阻塞,资源得不到释放,最终导致系统崩溃
避免阻塞引起的崩溃
限流、降级、反应式编程(异步、无临界区)
锁
锁原语 CAS
使用CAS修改对象头中的Mark Word实现加锁,从而实现Synchronize中的无锁、偏向锁、轻量级锁、重量级锁过程;
多 CPU 情况下的锁
总线锁与缓存锁
公平锁 非公平锁
可重入锁
独享锁/互斥锁 共享锁 读写锁
乐观锁 悲观锁
分段锁
自旋锁
评论