一、Benchmark简介

Benchmark是一个评价方式,在整个计算机领域有着长期的应用。正如维基百科上的解释“As computer architecture advanced, it became more difficult to compare the performance of various computer systems simply by looking at their specifications.Therefore, tests were developed that allowed comparison of different architectures.”Benchmark在计算机领域应用最成功的就是性能测试,主要测试负载的执行时间、传输速度、吞吐量、资源占用率等。

性能调优的两大利器是Benchmark和profile工具。Benchmark用压力测试挖掘整个系统的性能状况,而profile工具最大限度地呈现系统的运行状态和性能指标,方便用户诊断性能问题和进行调优。

二、Benchmark的组成

Benchmark的核心由3部分组成:数据集、 工作负载、度量指标。

1、数据集

数据类型分为结构化数据、半结构化数据和非结构化数据。由于大数据环境下的数据类型复杂,负载多样,所以大数据Benchmark需要生成3种类型的数据和对应负载。

1)结构化数据:传统的关系数据模型,可用二维表结构表示。典型场景有电商交易、财务系统、医疗HIS数据库、政务信息化系统等等;

2)半结构化数据:类似XML、HTML之类,自描述,数据结构和内容混杂在一起。典型应用场景有邮件系统、Web搜索引擎存储、教学资源库、档案系统等等,可以考虑使用Hbase等典型的KeyValue存储;

3)非结构化数据:各种文档、图片、视频和音频等。典型的应用有视频网站、图片相册、交通视频监控等等。

2、工作负载

互联网领域数据庞大,用户量大,成为大数据问题产生的天然土壤。对工作负载理解和设计可以从以下几个维度来看

1)密集计算类型:CPU密集型计算、IO密集型计算、网络密集型计算;

2)计算范式:SQL、批处理、流计算、图计算、机器学习;

3)计算延迟:在线计算、离线计算、实时计算;

4)应用领域:搜索引擎、社交网络、电子商务、地理位置、媒体、游戏。

3、度量指标

性能高估的两大利器就是Benchmark和Profile工具。Benchmark用压力测试挖掘整个系统的性能状况,而Profile工具最大限度地呈现系统的运行时状态和性能指标,方便用户诊断性能问题和进行调优。

1)工具的使用

a)在架构层面:perf、nmon等工具和命令;

b)在JVM层面:btrace、Jconsole、JVisualVM、JMap、JStack等工具和命令;

c)在Spark层面:web ui、console log,也可以修改Spark源码打印日志进行性能监控。

2)度量指标

a)从架构角度度量:浮点型操作密度、整数型操作密度、指令中断、cache命中率、TLB命中;

b)从Spark系统执行时间和吞吐的角度度量:Job作业执行时间、Job吞吐量、Stage执行时间、Stage吞吐量、Task执行时间、Task吞吐量;

c)从Spark系统资源利用率的角度度量:CPU在指定时间段的利用率、内存在指定时间段的利用率、磁盘在指定时间段的利用率、网络带宽在指定时间段的利用率;

d)从扩展性的角度度量:数据量扩展、集群节点数据扩展(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)等等

Benchmark 性能测试简介相关推荐

  1. [Golang]Benchmark性能测试

    前言 基准测试是测量一个程序在固定工作负载下的性能,Go语言也提供了可以支持基准性能测试的benchmark. 使用方法 下面展示一个基准测试的示例代码来剖析下它的使用方式: func Benchma ...

  2. go benchmark 性能测试 单元测试 基准测试 使用方法详解

    简言 基准测试是测量一个程序在固定工作负载下的性能 在Golang中,基准测试函数以Benchmark为前缀并且带有一个 *testing.B 类型的参数 规则 基准测试的代码文件必须以_test.g ...

  3. 利用Apache的ab命令做Benchmark性能测试

    测试系统性能,例如httpsqs # ab -k -c 10 -n 100000 "http://127.0.0.1:1218/?name=xoyo&opt=put&data ...

  4. 移动应用性能测试简介

    设备性能 启动时间 电池 内存消耗 硬件和软件的变化 与其他应用程序一起使用 后台运行 服务器/API性能. 来往于服务器的数据. 产生的API调用 服务器故障时间 网络性能 丢包 网络速度 网络类型 ...

  5. 基于python的压测工具_Python Locust性能测试简介及框架实践

    Locust(俗称 蝗虫), 一个轻量级的开源压测工具,用Python编写.使用 Python 代码定义用户行为,也可以仿真百万个用户: Locust 非常简单易用,是分布式,用户负载测试工具.Loc ...

  6. 网站性能测试工具Apache Benchmark的使用说明

    http://httpd.apache.org/docs/2.0/programs/ab.html 在网站开发中,有时候需要对网站进行性能测试,知道网站在一定的并发访问下的响应时间等情况,这里介绍Ap ...

  7. 计算机性能测试心得,性能测试结果及评测室总结

    评测平台及评测方法简介 试平台 主板 华擎 P67 Transfomer 内存 宇瞻 DDR3-1333 2GB x 2(8-8-8-24) 硬盘 金士顿 SSDNow SNV125-S2(30G) ...

  8. 【推荐系统】面向科研的推荐系统Benchmark诞生!

    今天跟大家分享的是一篇发表在RecSys2020推荐系统年会上的关于推荐系统Benchmark的文章.你是否还记得关于MLP or IP:推荐模型到底用哪个更好?问题的激烈讨论,又或你是否还记得关于评 ...

  9. cesium three性能比较_Go学习_21_Golang代码性能检测Benchmark

    Golang的testing包中除了单元测试testing.T之外,还提供了testing.B的Benchmark性能测试,Benchmark测试主要是通过测试CPU和内存的效率,来评估测试代码的性能 ...

最新文章

  1. 入门 Python GUI 开发的第一个坑
  2. 动态网页中隐藏url参数传递的方法
  3. 移动端web开发,click touch tap区别
  4. PyCaret:又一个神仙ML库
  5. webase crud查看所有表_Laravel-Gii 可视化代码生成工具 CRUD +GUI
  6. 如何下载python模块_Python第三方库(模块)下载和安装(使用pip命令)
  7. 鸿蒙关键技术研究,华为鸿蒙 2.0 系统主题演讲公布,详细架构 9 月 11 日揭晓
  8. 玩转大数据可视化,推荐几个必学的工具
  9. python适合自学编程吗-风变编程:Python适合编程初学者学习吗?
  10. [PHP开发必备] -- 小巧强悍的MYSQL-Front中文版使用教程,附最新版下载地址
  11. 常用正交表(可直接复制)以及混合正交表的使用
  12. 系统架构设计师与系统分析师历年实体分析与解答下载_架构设计的本质
  13. 【java线程篇】守护线程(Deamon)
  14. JDBC连接hive(错误小结)
  15. DuckDuckGo
  16. 好用的web报表设计器(报表工具)
  17. sshd报错Privilege separation user sshd does not exist的解决办法
  18. 透视宝Java监控部署流程
  19. 程序员裸辞三个月,终于拿到大厂offer!网友:不应该!
  20. 零基础CSS入门教程(22)–溢出

热门文章

  1. ESB和SOA到底是什么?
  2. CTFshow-web爆破
  3. Fusion 360的快捷键大全
  4. 07-2-theos实战: 给微信的发现”界面增加2行功能
  5. Delphi多线程处理
  6. html点赞代码java_17种 HTML5字体图标点赞动画特效源码
  7. 1款免费炫酷的javaweb版报表工具
  8. 数据结构通过链表实现班级同学通讯录
  9. [日语二级词汇]日语二级必会汉字总结3
  10. 关于Tesseract OCR 中文训练识别小试(java调用Tess4j)