week7- 作业二:根据当周学习情况,完成一篇学习总结
性能优化
一、性能测试:系统性能的主要技术指标
1、性能测试-主观视角、客观视角
2、性能测试指标-响应时间、并发数(用户并发数、在线用户数、系统用户数)、吞吐量(吞吐量 = ( 1000/响应时间ms) * 并发数)、性能计数器等;
3、性能测试方法:性能测试、负载测试、压力测试、稳定性测试;
二、全链路压测的挑战
1、压测数据如何构造-数据构造;
2、压测环境,是真实环境模拟,怎么样对线上无影响-数据隔离(逻辑隔离、虚拟隔离、物理隔离);
3、大型促销活动所带来的巨大流量怎么制作出来-流量构造;
4、淘宝全链路压测系统的构建
5、淘宝全链路压测系统的使用
三、性能优化:系统性能优化的分层思想;
1、性能压测的两个基本原则
1.1、你不能优化一个没有测试的软件
1.2、你不能优化一个你不了解的软件
2、性能优化的一般方法
2.1、性能测试,获得性能指标
2.2、指标分析,发现性能与资源瓶颈点
2.3、架构与代码分析,寻找性能与资源瓶颈关键梭子啊;
2.4、架构与代码及其他优化,优化关键技术点,平衡资源利用;
2.5、性能测试,进入性能优化闭环;
3、系统性能优化的分层思想
3.1、机房与骨干网络性能优化
3.2、服务器与硬件性能优化
3.3、操作系统性能优化
3.4、虚拟机性能优化
3.5、基础组件性能优化
3.6、软件架构性能优化
3.7、软件代码性能优化
四、操作系统:计算机如何处理成百上千的并发请求?
1、程序运行时架构
2、操作系统多任务运行环境
3、进程的运行期状态:运行、就绪、阻塞
4、进程 VS 线程
5、Java Web应用多线程运行时视图
6、线程安全、临界区
7、阻塞导致高并发系统崩溃
五、锁:锁原语CAS与各类锁
1、锁原语-CAS
2、Java通过CAS原语在对象头中修改Mark Word实现加锁
3、锁的升级 偏向锁--->轻量级锁(CAS、自旋)--->重量级锁(阻塞)
4、多CPU下情况下的锁-总线锁(内存总线)和缓存锁
5、锁的分类
5.1、公平锁(重量级锁,等待队列)和非公平锁(轻量级锁,CPU调度)
5.2、可重入锁
5.3、独享锁/互斥锁、共享锁、读写锁
5.4、乐观锁和悲观锁
5.5、分段锁
六、案例:异步并发分布式编程框架akka
评论