Benchmark简介
一、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简介的更多相关文章
- Redis性能测试工具benchmark简介
Redis自己提供了一个性能测试工具redis-benchmark.redis-benchmark可以模拟N个机器,同时发送M个请求. 用法:redis-benchmark [-h -h <ho ...
- spark性能测试理论-Benchmark(转)
一.Benchmark简介Benchmark是一个评价方式,在整个计算机领域有着长期的应用.正如维基百科上的解释“As computer architecture advanced, it becam ...
- golang 性能优化分析:benchmark 结合 pprof
前面 2 篇 golang 性能优化分析系列文章: golang 性能优化分析工具 pprof (上) golang 性能优化分析工具 pprof (下) 一.基准测试 benchmark 简介 在 ...
- 《Spark大数据处理:技术、应用与性能优化 》
基本信息 作者: 高彦杰 丛书名:大数据技术丛书 出版社:机械工业出版社 ISBN:9787111483861 上架时间:2014-11-5 出版日期:2014 年11月 开本:16开 页码:255 ...
- 《Spark大数据处理:技术、应用与性能优化》【PDF】 下载
内容简介 <Spark大数据处理:技术.应用与性能优化>根据最新技术版本,系统.全面.详细讲解Spark的各项功能使用.原理机制.技术细节.应用方法.性能优化,以及BDAS生态系统的相关技 ...
- 《Spark大数据处理:技术、应用与性能优化》【PDF】
内容简介 <Spark大数据处理:技术.应用与性能优化>根据最新技术版本,系统.全面.详细讲解Spark的各项功能使用.原理机制.技术细节.应用方法.性能优化,以及BDAS生态系统的相关技 ...
- 场景分割:MIT Scene Parsing 与DilatedNet 扩展卷积网络
MIT Scene Parsing Benchmark简介 Scene parsing is to segment and parse an image into different image re ...
- Golang 性能优化实战
小结: 1. 性能查看工具 pprof,trace 及压测工具 wrk 或其他压测工具的使用要比较了解. 代码逻辑层面的走读非常重要,要尽量避免无效逻辑. 对于 golang 自身库存在缺陷的,可以寻 ...
- NoSQL和Redis简介及Redis在Windows下的安装和使用教程
转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/103.html?1455869099 NoSQL简介 介绍redis前,我 ...
随机推荐
- docker 获取容器id
docker ps -aqf 'name=pypaltform2018_v1_trust_pro'
- Ubuntu 18.04 上设置桌面程序开机自启动
需求 在新安装的 Ubuntu 18.04 系统上,将有些不可描述的程序开机之后自动启动 Startup Applications Preferences 打开 Startup Application ...
- Python之路,入门学习(一)
一.变量\字符编码 声明变量 #_*_coding:utf-8_*_ name = "Alex Li" 上述代码声明了一个变量,变量名为: name,变量name的值为:" ...
- PMK数据生成工具airolib-ng
PMK数据生成工具airolib-ng PMK(Pairwise Master Key)是根据ESSID和无线密钥生成的哈希值,用于WPA/WPA2身份认证.在WPA/WPA2暴力破解中,需要大量 ...
- webview知多少?
原生页面不会用到webview,html页面内嵌APP,才会用到webview. 一.什么是webview?WebView是手机中内置了一款高性能 webkit 内核浏览器,在 SDK 中封装的一个组 ...
- leetcode 树的锯齿形状遍历
二叉树的锯齿形层次遍历 给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 例如:给定二叉树 [3,9,20,null,n ...
- 百度离线下载Tampermonkey脚本
https://greasyfork.org/zh-CN/scripts/23635-%E7%99%BE%E5%BA%A6%E7%BD%91%E7%9B%98%E7%9B%B4%E6%8E%A5%E4 ...
- SGU 101 Domino (输出欧拉路径)
101. Domino time limit per test: 0.25 sec. memory limit per test: 4096 KB Dominoes – game played wit ...
- STL中经常使用数据结构
STL中经常使用的数据结构: [1] stack.queue默认的底层实现为deque结构. [2] deque:用map管理多个size大小的连续内存块,方便头尾插入. [3] vector: ...
- 一个例子来看C#泛型是如何登场的
有这样一个有关汽车的类. public class Car { public int ID { get; set; } public string Make { get; set; } } 现在,在客 ...