架构师训练营总结 -7
性能测试指标
性能测试方法
性能测试
负载测试
压力测试
稳定性测试

性能优化
没有性能测试就没有性能优化
一般步骤:
1) 先进行性能测试,获得指标
2) 指标分析,发现性能与资源瓶颈点
3) 架构与代码分析,寻找性能与资源瓶颈关键所在
4) 架构与代码优化,优化关键技术按,平衡资源利用
5) 性能测试,进入性能优化闭环
系统性能优化的分层思想(系统性能从上到下可进行优化的层次划分)
1) 机房与骨干网络性能优化
2) 服务器与硬件性能优化
3) 操作系统性能优化
4) 虚拟机性能优化
5) 基础组件性能优化
6) 软件架构性能优化
7) 软件代码性能优化
网络带宽的所谓的千兆网是以bit(比特)做单位,操作系统一般展示的网络传输速度是以Byte(字节)做单位,1Byte=8bit
架构师需要了解的操作系统概念
1) 当代计算机是多任务运行环境:CPU采用极小的时间片的粒度去执行多个任务,每个任务执行一个时间片后会切换到下一个任务执行。在某一时刻还是只执行了一个任务,但时间片分的很小,给人的感觉是同时多个任务。
2) 进程状态:运行(正在CPU上执行)、就绪(给了CPU资源就会运行)、阻塞(给了CPU资源也不会运行)
3) 线程栈:每个函数都在栈顶执行,后进先出
4) Java web应用多线程视图
这个过程要掌握,能描述出来

5) 线程安全问题
多个线程同时操作进程共享内存中的数据时,可能会发生冲突,导致结果出错。
这里要掌握的内容是:程序运行时,数据存储在内存中的位置,哪些放在代码区,哪些放在堆内存,哪些放在栈内存中等。
如何解决呢?访问共享内存的代码,我们叫做临界区,解决线程安全的方法就是对临界区代码加锁。
6) 阻塞问题
如果所有线程阻塞(比如错误的加锁),会导致系统资源耗尽,最终系统崩溃。
如何解决呢?限流:控制请求数,减少创建的线程;降级:关闭部分程序,释放资源;反应式:异步,无临界区。
锁
1) 锁原语CAS:
java是通过cas原语在对象头中修改mark word来实现
锁的分类:
偏向锁,轻量级锁,重量级锁
Akka框架的理解 这块要多再听几遍,理解的不深
文件系统
1) B+树 以有序树的方式存储数据块,同一组数据可能存在不同的数据块中(个人理解)。
2) LSM树 利用机械磁盘的特性,连续写数据,减少移动磁头的次数,提高写的效率
3) 文件控制块 操作系统是把数据分成固定大小的一块一块的存储(比如4K为一块)
Linux INode文件控制块
4) 基于以上文件存储方式,如何提高读写速度,如何保证数据不丢失?
4.1) RAID 磁盘冗余阵列
RAID0 将数据并发向多个硬盘写,提高读写速度。缺点:硬盘容易坏
RAID1 每个数据块同时
RAID10
RAID5
RAID6
4.2) 分布式文件存储 HDFS

版权声明: 本文为 InfoQ 作者【River Tree】的原创文章。
原文链接:【http://xie.infoq.cn/article/0778fd7fb4c5c0b9578f3050e】。文章转载请联系作者。
评论