架构师训练营第七周学习总结

发布于: 23 小时前

性能测试

1.优化的前提和度量标准:性能优化的前提和基础;性能优化后的检查和度量标准

2.视角

主观视角(用户体验),主观优化:通过异步操作、信息提示等提升用户主观感受的性能

客观视角(性能指标)

3.性能指标

响应时间:系统快慢

并发数:同时请求的用户数

吞吐量:单位时间处理的请求数量

4.性能计数器

System Load系统负载:指当前正在被CPU执行和等待被CPU执行的进程数目总和

5.性能测试->负载测试->压力测试

不断增加压力,测试系统瓶颈

6.稳定性测试

长时间、模拟生产环境测试

性能优化

1.性能优化前:1.性能测试;2.了解系统

2.性能测试主要指标

响应时间

并发数

吞吐量

性能计数器:System Load、线程数、进程数、CPU、内存、磁盘、网络使用率

3. 性能优化一般方法

性能测试->分析指标->发现系统瓶颈->架构代码优化->性能测试

4.分层优化

操作系统

1.程序运行时架构

程序代码是静态的;运行起来之后称作进程

2.进程分时执行:CPU是有限的,进程数远大于CPU数量

3.进程状态:运行、就绪、阻塞

4.进程VS线程

进程间CPU切换,代价非常大;

5.线程栈-栈帧

6.Java Web 应用多线程运行时视图

7.线程安全;堆空间数据在多个线程同时修改

对临界区加锁

8.阻塞导致高并发系统崩溃

IO等操作导致线程一直阻塞,资源不能释放,导致资源耗尽,系统崩溃。

解决办法:

限流;降级;避免阻塞:异步IO;

1.锁如何实现:CAS愿与修改对象头中Mark Word实现加锁

CAS(V,E,N):V-变量;E:预期值;N:新值

偏向锁:被一个线程访问

轻量级锁:自旋方式获取锁

重量级锁:自旋达到一定次数还位获取锁时,升级到重量级锁;产生阻塞

2.多CPU情况下的锁

总线锁:阻塞其他CPU

缓存锁:一致性机制来保证原子性

3.锁的种类

公平锁、非公平锁:重量级锁是公平的(monitor队列)

可重入锁:synchronized

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

乐观锁、悲观锁

分段锁

自旋锁

4.AKKA

单机高并发、简单分布式

actor编程模型:异步消息;无锁、无阻塞

水平、垂直伸缩

案例:dew

文件与硬盘IO

机器硬盘、SSD硬盘:

文件存储: B+树、LSM树:连续写(内存->硬盘)

文件控制块

RAID独立硬盘冗余阵列:提高数据读写速度;

分布式文件系统

用户头像

bin

关注

还未添加个人签名 2017.10.16 加入

还未添加个人简介

评论

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