Benchmark 第一篇 了解Benchmark

这篇具有很好参考价值的文章主要介绍了Benchmark 第一篇 了解Benchmark。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、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也许就足以满足加速的需求。文章来源地址https://www.toymoban.com/news/detail-405589.html

到了这里,关于Benchmark 第一篇 了解Benchmark的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 单元测试spcok第一篇

    简单案例第一篇 https://tech.meituan.com/2021/08/06/spock-practice-in-meituan.html SpockRunner和Sputnik该如何选择? Sputnik和SpockRunner都是Spock框架中的类,用于运行Spock测试。 在早期的Spock版本中,测试运行器的类名是SpockRunner。但在后来的版本中,这个类被重命名为Sputnik。 因此,Sputnik和Spo

    2024年02月03日
    浏览(36)
  • ElasticSearch篇---第一篇

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 首先说分词是给检索用的。 英文:一个单词一个词,很简单。I am a student,词与词之间空格分隔。 中文:我是学

    2024年02月04日
    浏览(38)
  • Eureka-第一篇

    ​ 一、Eureka的概述 Eureka的基本概念和作用 Eureka是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。Eureka是Netflix开发的服务发现框架,主要用于解决在云计算环境中动态位置服务和快速弹性变化的问题。在微服务

    2024年01月24日
    浏览(46)
  • Mysql随心记--第一篇

    MylSAM:查询速度快,有较好的索引优化和数据压缩技术,但是它不支持事务 InnoDB:它支持事务,并且提供行级的锁定,应用也相当广泛 查看linux中创建了多少个docker容器下的mysql(只查看当前运行的去掉-a) 启动容器下的mysql 设置容器下的mysql自启动--restart always 使用该命令进

    2024年02月14日
    浏览(35)
  • FFmpeg<第一篇>:环境配置

    1、官网地址 2、linux下载ffmpeg 3、FFmpeg ./configure编译参数汇总 解压 ffmpeg-snapshot.tar.bz2 之后,在根目录下有配置文件:configure,执行该文件可以生成Makefile,configure文件中记录了configure的编译参数。 【1】Help options 帮助选项 【2】 Standard options 标准选项 【3】Licensing options 证书选

    2024年02月11日
    浏览(43)
  • Vue入门简介【第一篇】

            🌴  1.1  什么是Vue      vue是一个构建用户界面UI的 渐进式javascript框架 ,渐进式的框架是指可以一步一步的由浅入深的去使用该框架。       vue官网: https://cn.vuejs.org/         🌴  1.2 Vue的 优点  ⭐️  1、体积小     压缩后33k左右,体积小意味着下载速度很快

    2024年02月03日
    浏览(47)
  • spring---第一篇

    1、配置文件配置包扫描路径 2、递归包扫描获取.class文件 3、反射、确定需要交给IOC管理的类 4、对需要注入的类进行依赖注入 配置文件中指定需要扫描的包路径 定义一些注解,分别表示访问控制层、业务服务层、数据持久层、依赖注入注解、获取配置文件注 解 从配置文件

    2024年02月09日
    浏览(45)
  • 第一篇博客记录test

    调试vs Code查看使用test 知识不在广泛,在于精通。知识不在积累,在于消化。 学习不在激情,在于坚持。书不在多,一两本真正看懂就行。书读百遍,其义自现。 随笔 - 897, 文章 - 1, 评论 - 81, 阅读 -  158万 目录 一、将vscode定制为markdown编辑器 1、Markdown all in one插件 2、Markdo

    2024年04月24日
    浏览(30)
  • linux系统调用第一篇

    系统调用,顾名思义,说的是操作系统提供给用户程序调用的一组“特殊”接口。用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务,比如用户可以通过文件系统相关的调用请求系统打开文件、关闭文件或读写文件,可以通过时钟相关的系统调用获得系统时

    2024年04月15日
    浏览(41)
  • ReactHook学习(第一篇-N)

    Hook 是 React 16.8 的新增特性。它可以让你在不编写 class 的情况下使用 state 以及其他的 React 特性。 在我们继续之前,请记住 Hook 是: 完全可选的。 你无需重写任何已有代码就可以在一些组件中尝试 Hook。但是如果你不想,你不必现在就去学习或使用 Hook。 100% 向后兼容的。

    2023年04月26日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包