架构师训练营总结 -7

用户头像
River Tree
关注
发布于: 2020 年 07 月 16 日



  1. 性能测试指标

  2. 性能测试方法

性能测试

负载测试

压力测试

稳定性测试



  1. 性能优化

没有性能测试就没有性能优化

一般步骤:

1) 先进行性能测试,获得指标

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

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

4) 架构与代码优化,优化关键技术按,平衡资源利用

5) 性能测试,进入性能优化闭环

  1. 系统性能优化的分层思想(系统性能从上到下可进行优化的层次划分)

1) 机房与骨干网络性能优化

2) 服务器与硬件性能优化

3) 操作系统性能优化

4) 虚拟机性能优化

5) 基础组件性能优化

6) 软件架构性能优化

7) 软件代码性能优化



  1. 网络带宽的所谓的千兆网是以bit(比特)做单位,操作系统一般展示的网络传输速度是以Byte(字节)做单位,1Byte=8bit



  1. 架构师需要了解的操作系统概念

1) 当代计算机是多任务运行环境:CPU采用极小的时间片的粒度去执行多个任务,每个任务执行一个时间片后会切换到下一个任务执行。在某一时刻还是只执行了一个任务,但时间片分的很小,给人的感觉是同时多个任务。

2) 进程状态:运行(正在CPU上执行)、就绪(给了CPU资源就会运行)、阻塞(给了CPU资源也不会运行)

3) 线程栈:每个函数都在栈顶执行,后进先出

4) Java web应用多线程视图

这个过程要掌握,能描述出来

5) 线程安全问题

多个线程同时操作进程共享内存中的数据时,可能会发生冲突,导致结果出错。

这里要掌握的内容是:程序运行时,数据存储在内存中的位置,哪些放在代码区,哪些放在堆内存,哪些放在栈内存中等。

如何解决呢?访问共享内存的代码,我们叫做临界区,解决线程安全的方法就是对临界区代码加锁。

6) 阻塞问题

如果所有线程阻塞(比如错误的加锁),会导致系统资源耗尽,最终系统崩溃。

如何解决呢?限流:控制请求数,减少创建的线程;降级:关闭部分程序,释放资源;反应式:异步,无临界区。

1) 锁原语CAS:

java是通过cas原语在对象头中修改mark word来实现

锁的分类:

偏向锁,轻量级锁,重量级锁



  1. Akka框架的理解 这块要多再听几遍,理解的不深

  2. 文件系统

1) B+树 以有序树的方式存储数据块,同一组数据可能存在不同的数据块中(个人理解)。

2) LSM树 利用机械磁盘的特性,连续写数据,减少移动磁头的次数,提高写的效率

3) 文件控制块 操作系统是把数据分成固定大小的一块一块的存储(比如4K为一块)

Linux INode文件控制块

4) 基于以上文件存储方式,如何提高读写速度,如何保证数据不丢失?

4.1) RAID 磁盘冗余阵列

RAID0 将数据并发向多个硬盘写,提高读写速度。缺点:硬盘容易坏

RAID1 每个数据块同时

RAID10

RAID5

RAID6

4.2) 分布式文件存储 HDFS



发布于: 2020 年 07 月 16 日 阅读数: 25
用户头像

River Tree

关注

还未添加个人签名 2019.02.25 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营总结 -7