架构师训练营 No.7 周总结

用户头像
连增申
关注
发布于: 2020 年 07 月 22 日

性能测试

性能测试概述

性能测试是性能优化的前提和基础,也是性能优化结果的检查和度量标准。不同视角下的网站性能有不同的标准,也有不同的优化手段。

  • 主观视角:用户感受到的性能;

  • 客观视角:性能指标衡量的性能。

性能测试指标

  1. 响应时间:对请求作出响应所需要的时间,直接反应系统的“快慢”。响应时间=网络传输时间+应用服务器处理时间+数据库服务器处理时间=(N1+N2+N3+N4)+(A1+A3)+A2。

  2. 并发数:并发主要是针对服务器而言,在同一时刻与服务器进行交互(指向服务器发出请求)的在线用户数。反映系统的负载特性

  3. 吞吐量:(1000/响应时间ms)x并发数,指单位时间内系统处理用户的请求数。体现系统的处理能力。另外吞吐量指标:TPS(每秒事务数)、HPS(每秒HTTP请求数)、QPS(每秒查询数)。

  4. 性能计数器:是描述服务器或操作系统性能的一些数据指标,包括System Load、对象与线程数、CPU,内存,磁盘I/O,网络I/O等,这些指标是监控系统的重要指标,当监控系统发现超过设定阀值时,就向运维和开发发出劲爆,及时发现处理异常。

性能测试方法

性能测试

以系统设计初期规划的性能指标为预期目标,对系统不断施加压力,验证系统在资源可接受范围内,是否能达到性能预期。

负载测试

对系统不断地增加并发请求以增加系统压力,直到系统的某项或多项性能指标到达安全临界值,如某种资源已经呈饱和状态,这时候继续对系统施加压力,系统的处理能力不但不能提高,反而会下降。

压力测试

超过安全负载情况下,对系统继续施压,直到系统崩溃或不能处理任何请求,以此获得系统的最大压力承受能力。

稳定性测试

在特定硬件、软件、网络环境条件下,给系统加载一定业务压力,使系统运行一段较长时间,以此检测系统是否稳定。在实际生产环境,请求压力是不均匀的,呈波浪特性,为了更好模拟生产环境,稳定性测试也应不均匀地对系统施加压力。





性能优化

性能优化的基本原则

  • 不能优化一个没有测试的软件

  • 不能优化一个你不了解的软件



性能优化的一般方法

  • 性能测试,获得性能指标

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

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

  • 架构与代码优化,优化关键技术点,平衡资源利用

  • 性能测试,进入性能优化闭环



性能优化的分层思想

  • 机房与骨干网络性能优化

  • 服务器与硬件性能优化

  • 操作系统性能优化

  • 虚拟机性能优化

  • 基础组件性能优化

  • 软件架构性能优化:缓存、异步、集群

  • 软件代码性能优化:遵循面向对象的设计原则和设计模式

  • 并发编程,多线程与锁

  • 资源复用,线程池与对象池

  • 异步编程,生产者消费者

  • 数据结构,数组,链表,hash表、树

操作系统

锁原语CAS

偏向锁、轻量级锁、重量级锁

多CPU下的锁

总线锁与缓存锁

公平锁、非公平锁

重入锁

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

乐观锁 悲观锁

分段锁

自旋锁

文件与硬盘IO

机械硬盘与固态硬盘





B+树

LSM树



文件控制块

为了能对一个文件进行正确的存取,操作系统必须为文件设置用于描述和控制文件的数据结构,称之为文件控制块(FCB)。



Linux Inode文件控制块



RAID独立硬盘冗余阵列



分布式文件系统HDFS





用户头像

连增申

关注

还未添加个人签名 2020.04.02 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营 No.7 周总结