[转帖]使用 TiUP bench 组件压测 TiDB
https://docs.pingcap.com/zh/tidb/stable/tiup-bench
在测试数据库性能时,经常需要对数据库进行压测,为了满足这一需求,TiUP 集成了 bench 组件。TiUP bench 组件提供多种压测的 workloads,命令分别如下:
其中 tpcc, tpch, ch, rawsql 支持如下命令行参数。ycsb 使用方法较为不同,它主要通过 properties 文件进行配置,详见 go-ycsb 使用说明。
--host和--port支持以逗号分隔传入多个值,以启用客户端负载均衡。例如,当指定--host 172.16.4.1,172.16.4.2 --port 4000,4001时,负载程序将以轮询调度的方式连接到 172.16.4.1:4000, 172.16.4.1:4001, 172.16.4.2:4000, 172.16.4.2:4001 这 4 个实例上。--conn-params需要符合 query string 格式,不同数据库支持不同参数,如:--conn-params tidb_isolation_read_engines='tiflash'设置 TiDB 通过 TiFlash 进行查询。--conn-params sslmode=disable设置连接 PostgreSQL 不启用加密。
- 当运行 CH-benCHmark 时,可以通过
--ap-host,--ap-port,--ap-conn-params来指定独立的 TiDB 实例用于 OLAP 查询。
下文分别介绍如何使用 TiUP 运行 TPC-C, TPC-H 以及 YCSB 测试。
使用 TiUP 运行 TPC-C 测试
TiUP bench 组件支持如下运行 TPC-C 测试的命令和参数:
TPC-C 测试步骤
以下为简化后的关键步骤。完整的测试流程可以参考如何对 TiDB 进行 TPC-C 测试
通过 HASH 使用 4 个分区创建 4 个仓库:
tiup bench tpcc --warehouses 4 --parts 4 prepare运行 TPC-C 测试:
tiup bench tpcc --warehouses 4 --time 10m run检查一致性:
tiup bench tpcc --warehouses 4 check清理数据:
tiup bench tpcc --warehouses 4 cleanup
当需要测试大数据集时,直接写入数据通常较慢,此时可以使用如下命令生成 CSV 数据集,然后通过 TiDB Lightning 导入数据。
生成 CSV 文件:
tiup bench tpcc --warehouses 4 prepare --output-dir data --output-type=csv为指定的表生成 CSV 文件:
tiup bench tpcc --warehouses 4 prepare --output-dir data --output-type=csv --tables history,orders
使用 TiUP 运行 TPC-H 测试
TiUP bench 组件支持如下运行 TPC-H 测试的命令和参数:
TPC-H 测试步骤
准备数据:
tiup bench tpch --sf=1 prepare运行 TPC-H 测试,根据是否检查结果执行相应命令:
检查结果:
tiup bench tpch --count=22 --sf=1 --check=true run不检查结果:
tiup bench tpch --count=22 --sf=1 run
清理数据:
tiup bench tpch cleanup
使用 TiUP 运行 YCSB 测试
你可以使用 TiUP 对 TiDB 和 TiKV 节点分别进行 YCSB 测试。
测试 TiDB
准备数据:
tiup bench ycsb load tidb -p tidb.instances="127.0.0.1:4000" -p recordcount=10000运行 YCSB 测试:
# 默认读写比例为 95:5 tiup bench ycsb run tidb -p tidb.instances="127.0.0.1:4000" -p operationcount=10000
测试 TiKV
准备数据:
tiup bench ycsb load tikv -p tikv.pd="127.0.0.1:2379" -p recordcount=10000运行 YCSB 测试:
# 默认读写比例为 95:5 tiup bench ycsb run tikv -p tikv.pd="127.0.0.1:2379" -p operationcount=10000
使用 TiUP 运行 RawSQL 测试
你可以将 OLAP 查询写到 SQL 文件中,通过 tiup bench rawsql 执行测试,步骤如下:
准备数据和需要执行的查询:
-- 准备数据 CREATE TABLE t (a int); INSERT INTO t VALUES (1), (2), (3); -- 构造查询,保存为 demo.sql SELECT a, sleep(rand()) FROM t WHERE a < 4*rand();运行 RawSQL 测试:
tiup bench rawsql run --count 60 --query-files demo.sql
[转帖]使用 TiUP bench 组件压测 TiDB的更多相关文章
- [软件测试]网站压测工具Webbench源码分析
一.我与webbench二三事 Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能.Webbench ...
- 网站(Web)压测工具Webbench源码分析
一.我与webbench二三事 Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能.Webbench ...
- 压测工具Apache Bench的安装与使用
压测工具使用指南: Apache Bench 下载64位 压缩 cmd打开bin目录 使用abs.exe [option] http[s]://www.asb.com 来测试 其中option: -n ...
- NewLife.Net——网络压测单机1.88亿tps
NewLife.Net压力测试,峰值4.2Gbps,50万pps,消息大小24字节,消息处理速度1.88亿tps! 共集合20台高配ECS参与测试,主服务器带宽6Gbps.100万pps,16核心64 ...
- jmeter系列-如何实现像loadrunner一样,多个并发用户先通过登录初始化,然后做并发的接口性能压测
自动转开发后,就很少关注性能测试方面的东西,最近在帮朋友做一个性能压测,由于朋友那边的公司比较小,环境比较简单,而且是对http服务进行的压测,所以最终 选用了jmeter来实现这个压测. 如下就是我 ...
- JMeter接口压测——ServerAgent监控服务端性能指标
ServerAgent作为一个服务端性能监控插件,结合JMeter自身插件PerfMon可以实现JMeter压测的图形化实时监控,具有良好的实用性.下面讲解一个应用实例 思路: 1. 插件准备 2.打 ...
- 关于springmvc的helloworld的压测报告
都说hello world 很简单,应该能承受很大的请求压力,那么到底有多大?你知道吗?如果知道,那咱们就不继续了.如果不知道,我们来看一下! 1. 准备工作,快速建立一个基于springmvc的he ...
- Jemter 压测基础(一)——基本概念、JMeter安装使用、分布式测试、导出测试结果、编写测试报告
Jemter 压测基础(一) 1.压力测试的基本概念: 1.吞吐率(Requestspersecond) 服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请 ...
- LoadRunner 压测场景制定以及报告分析
这里,我们利用 LoadRunner 来制定场景,且以测试 tps 值为导向,主要介绍手工场景 单服务器的业务请求处理能力 tps 值在 10~200 是合理的:如果是访问单接口不走关系型数据库的,访 ...
- Apache 的 ab 压测工具快速使用
ab 是一个 httpd 自带的很好用的压力测试工具,它是 apache bench 命令的缩写.ab 命令会创建多个并发访问线程,模拟多个访问者同时对某一 URL 地址进行访问.可以用来测试 apa ...
随机推荐
- [Python急救站]回文数的判断
回文数判断:回文数是指这个数颠倒后,与原数一致,如32223.12221等. 第一个程序是由用户输入,并判断是否是回文数. a = eval(input("请输入一个五位数")) ...
- C# 添加OLE到PPT幻灯片
本文介绍通过C#程序代码来添加OLE对象到PPT幻灯片的方法.这里以将Excel文档为对象插入到PPT幻灯片中的指定位置:添加时,将Excel中的单元格范围保存为图片,将图片以嵌入的方式添加到幻灯片, ...
- 1024 | 9位开发者分享生涯“最”时刻,文武状元大PK等你来
本文分享自华为云社区<1024程序员节,和华为云一起做不被定义的开发者>,作者:华为云社区精选 . 1024,祝所有开发者们节日快乐 "代码有注释,程序无bug, 需求不改动,永 ...
- 华为发布5GtoB核心网建设白皮书
摘要:近日,华为发布<5GtoB核心网建设白皮书>. 近日,华为发布<5GtoB核心网建设白皮书>.该白皮书从5GtoB市场特征和发展规律角度切入,深度剖析了产业需求和与之对应 ...
- 分布式缓存服务DCS:企业版性能更强,稳定性更高
摘要:企业版性能指标达到业界TOP1,行业领先30%,内核态实现真正多线程. 一.背景介绍 近年来,随着各行业业务需求急速增加,数据量和并发访问量呈指数级增长,原来只能依附于关系型数据库的传统&quo ...
- CANN 6.0来了,硬核技术抢先看
摘要:在华为全联接大会2022期间,华为正式官宣昇腾AI异构计算架构CANN 6.0版本将在年底正式发布. 本文分享自华为云社区<昇腾AI异构计算架构CANN 6.0全新开放升级,全面释放AI生 ...
- 想了解Python中的super 函数么
摘要:经常有朋友问,学 Python 面向对象时,翻阅别人代码,会发现一个 super() 函数,那这个函数的作用到底是什么? 本文分享自华为云社区<Python 中的 super 函数怎么学, ...
- 为了减少代码复杂度,我将if-else升级为面向状态编程
摘要:面向过程设计和面向对象设计的主要区别是:是否在业务逻辑层使用冗长的if else判断. 本文分享自华为云社区<从面向if-else编程升级为面向状态编程,减少代码复杂度>,作者:br ...
- 实践解析可视化开发平台FlinkSever优势
摘要:华为Flink可视化开发平台FlinkServer作为自研服务,能够提供比原生flinksql接口更强的企业级特性,比如任务的集中管理,可视化开发,多数据源配置等. 本文分享自华为云社区< ...
- RandomAccessFile 读写文件
将目录下的N个日志文件读写到一个文件中. @Test void verification() throws Exception { File f = new File("D:\\Logs&q ...