目录

一、Benchmark(基准)简介

二、Benchmark的组成

三、工具

1.集成式测试工具

2.单组件测试工具

四、Benchmark特征

五、Benchmark测试需要考虑的因素

六、Benchimark测试步骤

1.观察

2.假设

3.预测

4.环境控制

5.测试

6.推论和结论

七、Benchmaark测试数据的实际用途/意义

八、Benchmark的重点

九、Benchmark的局限性


一、Benchmark(基准)简介

基准测试(benchmarking)是一种测量和评估软件性能指标的活动(是一个评价方式)。在某个时候通过基准测试建立一个已知的性能水平(称为基准线)。其在整个计算机领域有着长期的应用,计算机领域应用最成功的就是性能测试。

二、Benchmark的组成

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

三、工具

1.集成式测试工具

1)ab:Apache Http服务器基准测试工具。它可以测试HTTP服务器每秒最多可以处理多少请求。如果测试的是WEB应用服务,这个结果可以转换成整个应用每秒可以满足多少请求。只能对单个URL进行尽可能快的压力测试。ab详细信息
2)http_load:这个工具概念上和ab类似,也被设计为对web服务器进行测试,但比ab要更加灵活。可以通过一个输入文件提供多个URL,http_load在这些URL中随机选择进行测试。也可以定制http_load,使其按照时间比率进行测试,而不仅仅是测试最大请求处理能力。详细信息
3)Jmeter:Jmeter是一个java应用程序,可以加载其他应用并测试其性能。可以进行web应用、FTP服务器、或者通过jdbc进行数据库查询测试。它可以通过控制预热时间等参数更加灵活地模拟真实用户的访问。同时拥有绘图接口,可以对测试进行记录,然后离线重演测试结果。

2.单组件测试工具

1)mysqlslap:可以模拟服务器的负载,并输出计时信息。
2)mysql benchmark suite:在mysql的发行包中也提供了一款自己的基准测试套件,可以用于在不同数据库服务器上进行比较测试。它是单线程的,主要用于测试服务器执行查询的速度。结果会显示哪种类型的操作在服务器上执行得更快。
3)super smack:是一款用于mysql和postgresql的基准测试工具。可以提供压力测试和负载生成。可以模拟多用户访问,可以加载测试数据到数据库,并支持使用随机数据填充测试表。
4)sysbench:是一款多线程系统压测工具。它可以根据影响数据库服务器性能的各种因素来评估系统的性能。例如:可以用来测试文件i/o、操作系统调度器、内存分配和传输速度、POSIX线程,以及数据库服务器等。

四、Benchmark特征

1.可重复性:可进行重复性的测试,这样做有利于比较每次的测试结果,得到性能结果的长期变化趋势,为系统调优和上线前的容量规划做参考。

PS:这种特质是为了满足基准测试的日常轮询需要。

2.可观测性:通过全方位的监控(包括测试开始到结束,执行机、服务器、数据库),及时了解和分析测试过程发生了什么。

3.可展示性:相关人员可以直观明了的了解测试结果(web界面、仪表盘、折线图树状图等形式)。

4.真实性:测试的结果反映了客户体验到的真实的情况(真实准确的业务场景+与生产一致的配置+合理正确的测试方法)。

5.可执行性:相关人员可以快速的进行测试验证修改调优(可定位可分析)。

五、Benchmark测试需要考虑的因素

1.交易配比:某些业务场景,一个流程包含多个事务,在模拟并发中,不同的事务各自的占比;

2.突发性的读写操作:某些特殊业务场景,会有短时的大流量冲击或者请求数量骤减,该如何模拟(浪涌测试);

3.系统配置:不同环境的系统配置不同,测试结果如何换算、如何对比?

4.测试时长:测试执行过程中,运行多长时间,不同交易运行的时间分配等;

5.结果展示类型:平均值、峰值、百分比值如何展示,如何对比?

6.成功/失败占比:每次测试过程中,成功和失败的事务占比统计;

7.是否可重现:如测试过程中出现报错或某些异常情况,是否可以重现?

8.是否可对比:是否有其他测试工具或者测试结果进行对比(尽量多次执行测试,进行测试结果对比:标准方差、正太分布了解一下?)?

六、Benchimark测试步骤

1.观察

我们假设系统管理员购买了一台服务器,现在看看它的最佳性能。第一步是确定服务器预期任务。其将作为一个虚拟平台还是运行一个专门的应用程序?确定这些问题之后,就可以开始基准测试了。切记,测量标准和基准测试将根据测试内容和使用的设备而有所变化。例如,如果作为数据库系统可能会强调处理器测试,而用于网络服务系统的话可能会突出网络性能。

2.假设

在这个步骤,工程师设定一个基准目标。假设什么或者测试需要完成什么?简单地进行一个度量测试将得出一些试验结果,但是没有方向或明确的目标的话,这些结果可能是无用的。为测试创建一个基本的目标,并且所有的测试方法都围绕这个目标。例如,工程师可能会设法测试其占用的内存以让应用程序处于最佳运行状态。他或她可能因此推测,给定“X”内存大小可以达到最佳工作负载。这可以立足于以前的研究,供应商提供的基准或其他的来源。确保你的假设是可测试的。也就是说,不要提出一个只是基于数据的而基准测试却无法证实的假设。

3.预测

接下来,对服务器基准测试做一个大体预测。假设该设备将被作为一个专门的应用服务器。系统管理员能够预测,为工作负载增加额外的核心,设备性能将提升,同样,应用程序的性能也将会改善。在某些情况下,工程师甚至可以预测改善的比例,并希望通过基准测试进行验证。

4.环境控制

变量设置。例如,可能要给服务器分配一些核心。此时,管理员每次应只更改一个设置,直到他或她能够接受在此基础上的性能变化。工程师可能需要给服务器设置为6GB的内存,并测试其与其他设备相互配合的情况(CPU、影像、硬盘以及相关联的设备)。设置不同的变量,包括修改处理器设置,但其他设置都处于最初状态。

5.测试

变量都设置好之后,现在开始进行测试。从基准线开始进行测试(已知的起点),并有系统地调整服务器设置。每个测试序列都会有一个结果,记录结果以便以后引用。在这种情况下,一个测试序列可看做是一次硬件设置更改。每应用一次新的设置,都必须重新进行测试并记录结果。一旦有足够的运行周期,工程师应该有一份完整的数据以完成他们的推论。

6.推论和结论

进行测试并确认应用程序的实际性能以及给定预计资源或设置后的性能。例如,在只有一半数量的预期核心后,确定应用程序的最佳运行效果。从这点起,确定核心与其他当前变量(所需的内存大小、当前运行的应用程序数量、软件升级/服务包等)结合给服务器提供的最佳性能。注意,任何变量的改变都需要进一步实验。

(基准测试应该在相同的环境条件下进行,这样才能进行结果比较分析。)

七、Benchmaark测试数据的实际用途/意义

1.了解系统性能基准作为参照物(性能问题发生后的测试很难了解系统性能基准)
2.识别系统或环境的配置变更对性能响应带来的影响
3.为系统优化前后的性能提升/下降提供参考指标
4.观察系统的整体性能趋势与拐点发生,及早识别系统性能风险

八、Benchmark的重点

基准测试的工作重点是统计分析:可以从以下几个维度去进行统计:

1.选择合适的测试工具,设定合理的测试方法以及需要确认的系统性能指标;

2.选择不同的测试工具,对测试结果进行对比,选择稳定且能反应系统真是性能表现的结果;

3.多次执行测试,收集大量的测试数据集和指标;

4.从不同维度解读分析数据,生成报告。

九、Benchmark的局限性

基准测试不能替代好的设计,不管是混合存储还是全闪阵列,只要能正确补充存储,终端用户都会获得足够高的IOPS尽管后端磁盘性能可能不够而造成缓存不中等。因此,需要充分发挥每个存储层级的性能以补偿缺陷。
特别是遇到混合存储的时候,需要考虑的一点即是性能上的短板效应。正因为如此,无需快速访问的数据应该放在相对稳定一些的后端磁盘上。比如说在一些时候,后端如果使用了15000转速的磁盘,即便前端缓存大小适中也妨碍不大。
如果这样的话全闪存阵列则更为容易去衡量及评估因为不再需要考虑多级存储之间的关系。在这种情况下,需要了解SLC及MLC两种闪存之间的区别。虽然MLC较SLC慢,需要知道的是即便如此,其比传统硬盘还是会快很多。在许多场景下,MLC也许就足以满足加速的需求。

Benchmark 第一篇 了解Benchmark相关推荐

  1. Benchmark 第一篇

    定义 目标 功能 基准类型 测试工具 为什么要基准测试 Benchmark(基准)定义: 在计算中,benchmark(基准)是运行一个计算机程序.一组程序或其他操作的行为,以评估一个对象的相对性能, ...

  2. 我的第一篇论文诞生的故事

    点击上方,选择星标或置顶,每天给你送干货! 作者:郭必扬时间:2020-12-16 [插播]年初抽47份大奖!!参加的人还很少,后天开奖! 新年大礼包:Xbox.Switch,PopMart芝麻街系列 ...

  3. 全面介绍数砖开发 Delta Lake 的第一篇论文

    今年八月,Delta Lake 的第一篇论文发布了,我当时写了个总体介绍:Delta Lake 第一篇论文发布了,感兴趣的朋友可以先看总体介绍,再来详细了解一下本篇论文.因为篇幅较长,全文超3万字,建 ...

  4. 属于窄带噪声的是热噪声_时钟201系列: 非相位噪声的情况 (第一篇)

    欢迎来到Silicon Labs(亦称"芯科科技")的新系列博客文章"时钟201"的第一篇内容-非相位噪声的情况-第一部分.我们之前的系列博文"时钟1 ...

  5. linux的自定义input,Linux Input子系统之第一篇(input_dev/input_handle/input_handler)

    Input子系统是linux kernel中与部分外围器件驱动联系比较紧密的模块,常用于Sensor,TP(touch panel),power key等器件的驱动.这类模块有个共同特点:字符设备,且 ...

  6. 第一篇文章,做个纪念

    第一篇文章,做个纪念,这个blog好吗?拭目以待! 转载于:https://blog.51cto.com/197536/88241

  7. 《Ansible权威指南 》一 第一篇 Part 1 基础入门篇

    本节书摘来自华章出版社<Ansible权威指南 >一书中的第1章,第1.1节,李松涛 魏 巍 甘 捷 著更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第一篇 ...

  8. 研究生第一篇科研论文常犯问题总结

    ↑ 点击蓝字 关注视学算法 作者丨喻海良,中南大学教授,博士生导师 来源|http://blog.sciencenet.cn/blog-117889-1018759.html 极市导读 本文作者为中南 ...

  9. Webpack系列-第一篇基础杂记

    系列文章 Webpack系列-第一篇基础杂记 Webpack系列-第二篇插件机制杂记 Webpack系列-第三篇流程杂记 前言 公司的前端项目基本都是用Webpack来做工程化的,而Webpack虽然 ...

最新文章

  1. 安卓手机可以连接斑马系统吗_斑马郝飞:我们一定能在车载系统上打败安卓
  2. jquery 常用属性和函数(part I)
  3. js截屏 video_js获取视频截图
  4. [Erlang 0014]Erlang垃圾回收机制
  5. 数据挖掘 —— 有监督学习(回归)
  6. 机器学习与数学分析(一)
  7. java中map比较大小_java中对map根据value进行排序
  8. fat32 linux 打包工具_11款最棒的Linux数据恢复工具发布啦!
  9. 【python开发】构造一个可以查看,填加和返回的字典
  10. 修改mysql默认字符集的方法
  11. 机器人操作系统ROS微信群, 欢迎加我微信: Jdrobots 技术相互学习交流(加我请备注ROS,谢谢!) 。
  12. Solr优化案例分析
  13. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-1.数据信息安全--微信授权一键登录功能介绍...
  14. 23 岁那年你正处在哪个状态?现在呢?
  15. 老年人计算机培训方案,老年人学电脑从新手到高手
  16. 移动网络安装测试软件,adsl网速测试(中国移动宽带专用测速软件)
  17. 视频聊天软件的快速开发(QT5.3)
  18. 苹果手机如何深度清理_手机深度清理app
  19. 台式电脑上为什么没有计算机,台式电脑怎么没有声音
  20. WiFi-ESP8266入门http(3-4)网页一键配网(1若为普通wifi直连 2若为西电网页认证自动网页post请求连接)+网页按钮灯控+MQTT通信...

热门文章

  1. Dojo Charting 控件高级用法
  2. TwinCAT隐藏开机画面
  3. 游戏贴图打包工具——TexturePacker详解
  4. Privacy Amplification by Decentralization
  5. XP系统开机后桌面没有软件怎么修复?
  6. 鸿蒙强者排行榜,琉璃美人煞十大强者排名,腾蛇垫底,司凤第七,罗喉计都屈居第二...
  7. mysql打开eqd_Java 使用JDBC连接MySQL
  8. ARM NEON寄存器
  9. C#程序未能找到引用的组件VBIDE解决过程
  10. ios上如何能运行android程序,怎么在ios 系统上面运行安卓软件嘛