week7 学习总结
性能测试:
体验性:用户感知
指标性:量化指标
性能测试指标:
响应时间:系统从请求开始到最后响应数据所需要的时间。
并发数:系统同时处理请求的数量
呑吐量:请求数/秒,页面数/秒,访问人数/天,处理的业务数/小时,TPS(事务数/秒),HPS(HTTP请求数/秒),QPS(查询数/秒)等。
吞吐量 = ( 1000 / 响应时间ms ) x 并发数
性能测试方法:
性能测试:预期
负载测试:安全临界值
压力测试:最大承受压力
稳定性测试:长时间运行
全链路压测:
找出性能瓶颈
测试数据隔离:
逻辑隔离,虚拟隔离,物理隔离
软件性能优化的两个基本原则
你不能优化一个没有测试的软件
你不能优化一个你不了解的软件
软件架构性能优化三板斧:
缓存
异步
集群
很多时候程序性能不好不是因为性能上有什么技术挑战,仅仅就是因为代码太烂了。
程序:静态
进程:CPU分时执行
进程的运行期状态
运行:
就绪:其他准备完成,只需CPU
阻塞:等待某一事件发生而暂时停止运行
进程VS线程
进行是系统级的,线程是程序级的。
避免阻塞导致高并发系统崩溃
限流:
降级:关闭部分功能程序的执行
避免阻塞:异步IO
锁
锁原语CAS:一种系统原语,原语的执行必须是连续的,在执行过程中不允许被中断。
偏向锁:
经量级锁:
重量级锁:
总线锁:
缓存锁:
公平锁:
非公平锁:饥饿现象
可重入锁:
独享锁/互斥锁:
共享锁:
读写锁:
乐观锁:
悲观锁:
分段锁:
自旋锁:
文件与硬盘I/O
机械硬盘:
固态硬盘:
B+树:
LSM树:
文件控制块
Linux Inode 文件控制块
RAID 独立硬盘冗余阵列
分布式文件系统HDFS ?
评论