7.1 Benchmark简介
Benchmark性能基准测试本质上就是生成模拟数据或真实数据,在系统上运行典型负载(Workload),进而暴露系统瓶颈和性能优势,最终完成系统评测。
Benchmark的种类很多,有些偏重于硬件,有些偏重于软件,还有些是对整个系统进行综合度量和评价。
我们为什么要使用Benchmark呢?其实Benchmark对软硬件系统生产厂商和用户都是很有价值的。生产厂商利用Benchmark在产品的开发过程中诊断性能瓶颈,随时进行调优和优化。产品发布之后,也能够根据评测结果进行很有说服力的宣传,说明产品基于哪个Benchmark性能,达到什么样的标准。同时有些厂商没有真实环境的数据,需要利用Benchmark来生产数据和负载,模拟生产环境的运行状况。对用户来说就是可以根据Benchmark的结果对比不同厂商的不同产品,更加方便和透明地选择系统。
同时,Benchmark对一个领域的技术发展很有积极意义,例如,在数据库领域,TPC的Bench已经成为开发数据库的主流Benchmark。开发者在开发的过程中,利用Benchmark生成结构化的数据,同时利用查询生成器生成指定数据库的SQL方言。这样在开发的数据库或者改进的算法上用SQL负载(Workload)进行测试,就能够更加精准地了解性能瓶颈,对系统进行调优。
选择Benchmark需要有明确的目的。当用于产品发布时,就应该用这个领域主流和权威的Benchmark进行评估。同时有些Benchmark只适用于某些领域。例如,TPC针对数据仓库开发了TPC-DS Benchmark,而针对其他的数据库又有TPC-H等系列的Benchmark供用户使用。
在现在的Bigdata领域,Benchmark标准尚在制定,但是有一些Benchmark得到部分应用。
下面介绍现有的几款大数据的Benchmark,用户可以根据自己的情况选用,对Spark或者Spark上的系统进行性能评测。