- 定义
- 目标
- 功能
- 基准类型
- 测试工具
- 为什么要基准测试
Benchmark(基准)定义:
在计算中,benchmark(基准)是运行一个计算机程序、一组程序或其他操作的行为,以评估一个对象的相对性能,通常是通过对它运行一些标准测试和试验。
基准测试是一种测量和评估软件性能指标的活动,用于建立某个时刻的性能基准,以便当系统发生软硬件变化时,重新进行基准测试以评估变化对性能的影响。
目标
基准测试时有几个目标需要满足。
- 一是确保应用程序在响应时间、并发用户数量和任何其他强制要求的 SLA 中指定的性能要求方面满足最低规范。
- 二是在升级和更改后重新测试应用程序。
- 三是确定应用程序的断点,增加负载和需求,直到断点。
功能
基准测试软件的功能可能包括将性能过程记录/导出到电子表格文件、可视化(例如绘制折线图或彩色编码图块)以及暂停过程以便能够恢复而无需重新开始。软件可以具有特定于其目的的附加功能。
基准类型
- 真实程序
- 文字处理软件
- CAD工具软件
- 用户的应用软件(即:MIS)
- 组件基准/微基准
- 核心例程由一段相对较小且特定的代码组成。
- 测量计算机基本组件的性能[6]
- 可用于自动检测计算机的硬件参数,如寄存器数量、缓存大小、内存延迟等。
- 核心
- 包含关键代码
- 通常从实际程序中抽象出来
- 流行内核:Livermore 循环
- linpack benchmark(包含用 FORTRAN 语言编写的基本线性代数子程序)
- 结果以 Mflop/s 表示。
- 综合基准
- 编程合成基准的程序:
- 从许多应用程序中统计所有类型的操作
- 获取每个操作的比例
- 按照上面的比例写程序
- 综合基准的类型有:
- I/O 基准测试
- 数据库基准
- 测量数据库管理系统 (DBMS) 的吞吐量和响应时间
- 并行基准
- 用于具有多核和/或处理器的机器,或由多台机器组成的系统
测试工具
测试工具需要模仿用户在现实世界中尝试执行的操作类型,模拟从一到数千的任意数量的并发用户,以便能够满足并超越应用程序的规范。它还需要捕获事务以及测试结果,以便在发现故障时可以追溯到它们的源头。
为什么要基准测试
- 验证基于系统的一些假设,确认这些假设是否符合实际情况
- 重现系统中的某些异常行为,以解决这些异常
- 测试系统当前的运行情况
- 模拟比当前系统更高的负载,以找出系统随着压力增加而可能遇到的扩展性瓶颈
- 规划未来的业务增长
- 测试应用适应可变环境的能力
- 测试不同的硬件,软件和操作系统配置