基准测试

Leming TPC-DS 基准测试

冷暖自知 提交于 2020-01-09 11:55:40
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 发展前景 随着互联网的发展,各种应用系统被广泛应用,近年来国家倡导的凡事可追溯,更是加快了数据的增长速度。海量的数据堆积在我们面前,于是聪明的人类开始从数据中发掘价值,研究已有数据成了一门新的学问。数据中究竟隐藏着哪些信息呢?首先是用户的习惯,通过数据分析我们可以发现用户的习惯,推测其喜好和意向,有目的性的进行推荐,既能相得益彰又能各取所需;第二个信息是发现存在的问题,通过整体统计分析,可以反观问题所在,规避风险。当然数据中隐藏的信息远不止如此,这些信息对于决策者来说都是宝贵的资料,是决策者做出决策的重要依据。 决策支持系统就是为决策者提供所需数据依据的系统,它最重要的是进行查询分析,即联机分析处理(OLAP)。我们知道,数据库进行查询时会上“读锁”,这意味着无论多少并发查询,相互之间不会造成影响,此时就非常考验数据库在联机分析处理方面的性能,为了保证系统的性能,数据库测试成为了必然。 基准介绍 TPC-DS基准 就是基于决策支持系统的数据库性能测试基准,它以商品零售为蓝图,描述了店铺、网上、目录三种销售渠道的交易信息以及库存信息和促销活动,其数据经过提取、转换、加载三个步骤(简称ETL)注入并更新数据仓库,如下图: TPC-DS基准 的数据仓库包含7张事实表和17张维度表

Leming TPC-E 基准测试

冷暖自知 提交于 2020-01-08 16:39:09
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 发展前景 近年来,IT领域呈现火箭式发展,技术上的理想主义和家国情怀鼓舞着国产数据库的自主创新,得益于国家政策的支持,国产数据库已经百花齐放。尽管数据库产品已经经过了实战应用,但是要得到业界的广泛认可,走出国门跻身世界,甚至向传统主流数据库发出挑战,就需要选取国际国内公认的、权威的基准进行测试证明。 数据库是一个企业的核心,无论企业的业务是怎样的,数据库只能识别任务,不明就里,这些任务主要分两类:一类是交易处理,一类是智能分析。针对交易处理,可以选取国际国内认可的TPC-E基准进行测试。 基准介绍 TPC-E基准测试 是以股票交易业务场景为载体的测试,选取股票交易业务场景的初衷是它作为金融行业的典型,较其他行业有更高的性能要求,并且操作类型丰富,具有广泛的代表性,是经典的OLTP系统。TPC-E基准测试使用统一的数据模型进行测试,也就是说,测试并不在乎被测数据库本身的数据,而是使用相同的原则生成股票行业数据。 TPC-E基准 基于现实股票交易操作抽象出10种数据库事务及其混合比,描述了客户、证券公司、股票交易所之间的关系,如下: 解析 从表面上看,整个架构以证券公司为核心,证券公司的操作始终代表客户的意愿,所以本质上,测试还是围绕客户买卖股票行为展开,客户提出股票交易请求

MySQL性能基准测试对比:5.7 VS 8.0

别来无恙 提交于 2019-12-21 04:38:31
本文由云+社区发表 作者:数据库 版权声明: 本文由腾讯云数据库产品团队整理,页面原始内容来自于severalnines英文官网,若转载请注明出处。翻译目的在于传递更多全球最新数据库领域相关信息,并不意味着腾讯云数据库产品团队赞同其观点或证实其内容的真实性。如果其他媒体、网站或其他任何形式的法律实体和个人使用,必须经过著作权人合法书面授权并自负全部法律责任。不得擅自使用腾讯云数据库团队的名义进行转载,或盗用腾讯云数据库团队名义发布信息。 原文链接:https://severalnines.com/blog/mysql-performance-benchmarking-mysql-57-vs-mysql-80 在Oracle MySQL团队的推动下,MySQL 8.0发生了巨大的变化和修改。 物理文件已更改。例如, .frm, .TRG, .TRN和 .par 不再存在。添加了大量的新特性,如通用表表达式(Common Table Expressions CTE),窗口函数(Window Functions),不可见索引( Invisible Indexes),正则表达式(regexp) -MySQL8.0现在已经完全支持Unicode,且具有多字节安全特性。数据字典也发生了变化。它现在与一个事务性数据字典合并,该字典存储有关数据库对象的信息。与以前的版本不同

第二章 MySQL基准测试

情到浓时终转凉″ 提交于 2019-12-06 10:19:26
基准测试是针对系统设计的一种压力测试,通常的目标是为了掌握系统的行为。但也有其他原因,如重新某个系统状态,或者是做新硬件的可靠性测试。我们将特别讨论一下sysbench,这是一款非常优秀的MySQL基准测试工具。 2.1 为什么需要基准测试 基准测试是唯一有效、可以学习系统在给定的工作负载下会发生什么的方法。基准测试可以观察在不同压力下的行为,评估系统的容量,掌握哪些是重要的变化,或者观察系统如何处理不同的数据。基准测试可以在系统实际负载之外创造一些虚拟场景进行测试。 2.2 基准测试的策略 基准测试有两种主要的策略:一是针对整个系统的整体测试,另外是单独测试mysql。这两种策略也被称为集成式(full-stack)以及单组件式(single-component)基准测试。 2.2.1 测试何种指标 吞吐量 吞吐量指的是单位时间内的事务处理数。这一直是经典的数据库应用测试指标。一些标准的基准测试被广泛地引用,如TPC-C,而且很多数据库厂商都努力争取在这些测试中取得好成绩。这类基准测试主要针对在线事务处理(OLTP)的吞吐量,非常使用于多用户的交互式应用。常用的测试单位是每秒事务数(TPS),有时也采用每分钟事务数(TPM)。 响应时间或者延迟 这个指标用于测试任务所需的整体时间。根据具体的应用,测试的时间单位可能是微妙、毫秒、秒或者分钟。根据不同的时间单位可以计算出平均响应时间

nginx基准测试

纵然是瞬间 提交于 2019-12-05 22:08:51
目录 环境信息 默认配置 绑定CPU亲缘性 环境信息 Nginx: 16C32G Gatling: 8C8G (Gatling在高并发方面,性能比Jmeter强一些) 带宽2G 默认配置 配置进程数为16,直接访问80端口的静态文件,测试基准性能 场景 并发 QPS CPU占用 内存占用 备注 短连接 100 短连接 1000 长连接 100 长连接 1000 绑定CPU亲缘性 将进程绑定到16个核上,直接访问80端口的静态文件,测试基准性能 worker_cpu_affinity 0000000000000001 0000000000000010 0000000000000100 0000000000001000 0000000000010000 0000000000100000 0000000001000000 0000000010000000 0000000100000000 0000001000000000 0000010000000000 0000100000000000 0001000000000000 0010000000000000 0100000000000000 1000000000000000; 来源: https://www.cnblogs.com/CSunShine/p/11947124.html

.Net Core 2.2与Java 12性能对比

匿名 (未验证) 提交于 2019-12-02 21:52:03
我发现 基准游戏 ( https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/csharp.html )是一套非常好的基准测试。基准测试经过深思熟虑,涵盖了经典的单线程计算到多线程IO数据处理。显然,在这种基准游戏中,诸如网络性能等领域并不容易测试。组织者是艰难但公平的,规则很有意义。这些基准确实可以解决比我见过的大多数现实问题。 总体印象是.Net Core 2.2要比Java 12 的表现好很多。 来源:博客园 作者: 张善友 链接:https://www.cnblogs.com/shanyou/p/11443770.html

使用JMH做Benchmark基准测试

匿名 (未验证) 提交于 2019-12-02 21:45:52
前言 JDK,CGLIB,JAVASSIST是常用的动态代理方式。 JDK动态代理仅能对具有接口的类进行代理。 CGLIB动态代理方式的目标类可以没有接口。 Javassist是一个开源的分析、编辑和创建Java字节码的类库,JAVASSIST可以动态修改类,比如添加方法和属性。JAVASSIST的目标类也没有接口限制。 动态代理常用在RPC接口调用中,因此选择一个好的动态代理方式,会对系统性能有一定的提升。 对于代码的性能测试,常规的方法如下,如此是无法获取到准确的性能数据的 long start = System.currentTimeMillis(); xxx.xx(); long end = System.currentTimeMillis(); System.out.println("运行时间:"+(end-start)); JMH用来做基准测试,由于JIT编译器会根据代码运行情况进行优化,代码在第一次执行的时候,速度相对较慢,随着运行的次数增加,JIT编译器会对代码进行优化,以达到最佳的性能状态。 JMH可以对代码进行预热,让代码达到最佳的性能状态,再进行性能测试。 使用JMH做Benchmark基准测试 本博客主要讲解使用JMH对这三种动态代理的对象创建过程和方法调用进行测试。JDK版本是8.0. 代理实现 Jdk方式 public class

.Net Core 2.2与Java 12性能对比

末鹿安然 提交于 2019-11-29 03:49:45
我发现 基准游戏 ( https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/csharp.html )是一套非常好的基准测试。基准测试经过深思熟虑,涵盖了经典的单线程计算到多线程IO数据处理。显然,在这种基准游戏中,诸如网络性能等领域并不容易测试。组织者是艰难但公平的,规则很有意义。这些基准确实可以解决比我见过的大多数现实问题。 总体印象是.Net Core 2.2要比Java 12 的表现好很多。 来源: https://www.cnblogs.com/shanyou/p/11443770.html

Golang ---基准测试

こ雲淡風輕ζ 提交于 2019-11-28 12:17:17
什么是基准测试 基准测试,是一种测试代码性能的方法,比如你有多种不同的方案,都可以解决问题,那么到底是那种方案性能更好呢?这时候基准测试就派上用场了。 基准测试主要是通过测试CPU和内存的效率问题,来评估被测试代码的性能,进而找到更好的解决方案。比如链接池的数量不是越多越好,那么哪个值才是最优值呢,这就需要配合基准测试不断调优了。 如何编写基准测试 基准测试代码的编写和单元测试非常相似,它也有一定的规则,我们先看一个示例。 itoa_test.go package gotest import ( "fmt" "testing" ) //itoa_test.go func BenchmarkSprintf(b *testing.B) { num := 10 b.ResetTimer() for i := 0; i < b.N; i++ { fmt.Sprintf("%d", num) } }    这是一个基准测试的例子,从中我们可以看出以下规则: 基准测试的代码文件必须以 _test.go 结尾 基准测试的函数必须以 Benchmark 开头,必须是可导出的 基准测试函数必须接受一个指向Benchmark类型的指针作为唯一参数 基准测试函数不能有返回值 b.ResetTimer 是重置计时器,这样可以避免 for 循环之前的初始化代码的干扰 最后的for循环很重要

基准测试工具:Wrk初识

女生的网名这么多〃 提交于 2019-11-28 11:21:54
最近和同事聊起常用的一些压测工具,谈到了Apache ab、阿里云的PTS、Jmeter、Locust以及wrk各自的一些优缺点和适用的场景类型。 这篇博客,简单介绍下HTTP基准测试工具wrk的基本使用方法。。。 一、压测工具对比 工具名称 类型 多协议支持 优缺点 适用人群&场景 Apache ab 开源 HTTP Apache自带源生测试工具,安装部署简单,不适合多协议及复杂场景 开发:单机&单接口性能基准验证 PTS 商业 多协议(支持不太好) 阿里云配套收费压测工具,支持多协议链路压测,功能完善 技术人员:基准&链路&高并发 Jmeter 开源 多协议 使用率高&学习成本低,多协议复杂场景支持良好,受限于机制,资源损耗较高 技术人员:多场景&万级以下并发全场景 Locust 开源 多协议(需二次开发) python开源压测框架,支持多协议&复杂场景(需二次开发,定制化) 技术人员:性能测试&支持程度取决于定制开发 Wrk 开源 HTTP HTTP基准测试工具,高并发低损耗,安装部署简单,不适合多协议及复杂场景 开发:单机&单接口性能基准验证 二、简介及安装 1、简介 Wrk是一个支持HTTP协议的基准测试工具,结合了多线程设计和可扩展事件通知,底层封装epoll(linux)和kqueue(bsd),能用较少线程生成大量并发请求(使用了操作系统特定的高性能io机制)。