架构师训练营第七周总结

发布于: 23 小时前

性能测试

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

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



性能测试指标:

  • 响应时间

  • 并发数

  • 吞吐量(TPS、HPS、QPS)

  • 性能计数器:System Load、对象与线程数、内存使用、CPU使用、磁盘与网络I/0



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



性能测试方法:

  • 性能测试

  • 负载测试

  • 压力测试

  • 稳定性测试



软件性能优化的两个基本原则

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

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



性能优化的一般方法

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

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

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

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

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



系统性能优化的分层思想



软件架构性能优化的三板斧

  • 缓存

  • 异步

  • 集群



操作系统

程序运行时架构

  • 程序是静态的

  • 程序运行起来后,被称为进程



操作系统多任务运行环境:进程分时执行



进程的运行期状态

  • 运行

  • 就绪

  • 阻塞



进程VS线程:单进程多线程思路



线程栈与线程安全



临界区:

多个线程访问共享资源的这段代码被称为临界区,将临界区的代码加锁,只有获得锁的线程才能执行临界区的代码



阻塞导致高并发系统崩溃

避免阻塞引起的崩溃:

  • 限流

  • 降级

  • 避免阻塞



  • 锁原语CAS

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

  • 总线锁与缓存锁

  • 公平锁、非公平锁

  • 可重入锁

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

  • 乐观锁、悲观锁

  • 分段锁(JDK ConcurrentHashMap)

  • 自旋锁



文件与硬盘I/O

  • 机械硬盘

  • 固态硬盘

  • B+树与LSM树

  • 文件控制块

  • RAID独立硬盘冗余阵列

  • 分布式文件系统HDFS



发布于: 23 小时前 阅读数: 11
用户头像

James-Pang

关注

不忘初心 2018.11.08 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第七周总结