目录
引入(关于基准测试)
一、Benchmark的定义:
二、Benchmark的组成:
三、Benchmark的运用:
引入(关于基准测试)
·定义:
基准测试是一种测量和评估软件性能指标的活动,用于建立某个时刻的性能基准,以便当系统发生软硬件变化时评估变化对性能的影响。可以看作是针对系统设置的一种压力测试(两者略有差别),可以用来观察系统不同压力下的不同行为。
·应用场景:
1.模拟比当前系统更高的负载,以找出系统随着加压而可能遇到的扩展瓶颈。
2.测试不同的硬件,软件的版本和操作系统的配置对数据库的性能影响。
3.验证新设备是否是配置正确。
一、Benchmark的定义:
Benchmark是一种评价方式,主要应用于性能测试,主要测试负载的执行时间、传输速度、吞吐量、资源占用率等。
二、Benchmark的组成:
Benchmark的核心由3部分组成:数据集、工作负载、度量指标。
1. 数据集
为更好地处理数据,将数据类型分为结构化数据、半结构化数据和非结构化数据
(1)结构化数据:传统的关系数据模型,可用二维表结构表示。典型场景有电商交易、财务系统、医疗HIS数据库、政务信息化系统等等。(纯数据)
(2)半结构化数据:类似XML、HTML之类,自描述,数据结构和内容混杂在一起。典型应用场景有邮件系统、Web搜索引擎存储、教学资源库、档案系统等等。(半数据半图文)
(PS:XML为可扩展标记语言,HTML为超文本标记语言)
(PS:标记语言是展现出关于文档结构和数据处理细节的电脑文字编码)
(3)非结构化数据:各种文档、图片、视频和音频等。典型的应用有视频网站、图片相册、交通视频监控等等。(纯图文)
2. 工作负载
·对工作负载理解和设计可以从以下几个维度来看
(1)密集计算类型:主要有计算密集型、IO密集型、数据密集型三种。
a. 计算密集型:要进行大量的计算,消耗CPU资源。如计算圆周率等。
b. IO密集型:涉及到网络、磁盘IO的任务都是IO密集型任务。CPU消耗很少,任务的大部分时间都在等待IO操作完成。如文件传输、下载等。
c. 数据密集型:可看作前二者的结合。如web应用,它是以海量数据为基础,以数据处理为核心的互联网服务系统。
(2)计算范式:是和某种用于执行计算任务的硬件结构相适应的计算风格。
(3)计算延迟:有在线计算、离线计算、实时计算。
3. 度量指标(待深入了解)
·意为测量中应考虑的测量工具的主要性能,它是选择和使用测量工具的依据
(1)从架构角度度量:浮点型操作密度、整数型操作密度、指令中断、cache命中率、TLB命中;
(2)从Spark系统执行时间和吞吐的角度度量:Job作业执行时间、Job吞吐量、Stage执行时间、Stage吞吐量、Task执行时间、Task吞吐量;
(3)从Spark系统资源利用率的角度度量:CPU在指定时间段的利用率、内存在指定时间段的利用率、磁盘在指定时间段的利用率、网络带宽在指定时间段的利用率;
(4)从扩展性的角度度量:数据量扩展、集群节点数据扩展(scale out)、单机性能扩展(scale up)。
三、Benchmark的运用:
(待深入了解)
1. Hibench:由Intel开发的针对Hadoop的基准测试工具,开源的,用户可以到Github库中下载。
2. Berkeley BigDataBench:随着Spark的推出,由AMPLab开发的一套大数据基准测试工具,官网介绍。
3. Hadoop GridMix:Hadoop自带的Benchmark,作为Hadoop自带的测试工具使用方便、负载经典,应用广泛。
4. Bigbench:由Teradata、多伦多大学、InfoSizing、Oracle开发,其设计思想和利用扩展具有研究价值,可以参阅论文Bigbench:Towards an industry standard benchmark for big data analytics。
5. BigDataBenchmark:由中科院研发,官方介绍。
6. TPC-DS:广泛应用于SQL on Hadoop的产品评测。
7. 其他的Benchmark:Malstone、Cloud Harmony、YCSB、SWIM、LinkBench、DFSIO、Hive performance Benchmark(Pavlo)等等。