toadb性能测试

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核8GB 50GB
简介: ToaDB是一款数据库系统,其测试工具集支持自动化功能及性能测试。功能测试脚本位于`toadb/src/test/`,需先编译`tsql`工具,运行`startTest.sh`即可开始测试并记录结果。性能测试工具位于源码根目录`toadb/test/benchmark/`,包括数据构建与测试两部分,可通过`benchmarkBuildData.sh`和`benchmarkRun.sh`脚本执行。

[toc]

概要说明

软件的迭代开发过程中,它的功能,稳定性,性能,易用性能各方面都在发生着变化,随着软件的庞大,已经不能通过人工手段进行觉察,所以需要配套测试工具,由自动化来验证原有功能的完整性,和增加功能带来的变化效果。

在toadb起始,我们准备了两套自动化测试工具集,一套是功能测试,一套是性能兼稳定性测试,它们都是通过shell脚本来编写,调用客户端工具tsql来执行SQL。

toadb开源地址:
toadb-gitcode
toadb-gitee

功能测试

功能测试自动化脚本位于,toadb/src/test/下,使用的前提是,在toadb/src下执行make client,将tsql工具编译出来。

然后在命令行运行./src/test/startTest.sh,它会将结果输出到当前终端和当前目录下的.log文件中。

性能测试工具

在源码根目录下toadb/test/benchmark/,模拟TPC-B标准实现了四张表的增删改查。
需要两步来执行:

  • 创建测试表与数据
    这一步是由benchmarkBuildData.sh来完成,同时需要输入scale因子,它会将同名表删除,再创建新的表,同时插入新的数据。数据量根据scale 乘以每张表的初始数量。

测试会创建以四张表,toad_historytoad_branchestoad_tellerstoad_accounts

  • 测试
    测试是由benchmarkRun.sh脚本来完成,需要输入 scale因子,测试模式,运行时间,输出间隔时间。其中scale因子需要和创建的测试数据一致,运行时间以秒为单位,输出间隔默认为10s打印一次结果。

测试模式用数字表式,有三种模式可选:

  • 1 是TPC-B模式, 混合读写模式;
  • 2 是update模式, 只执行udpate SQL语句;
  • 3 是select 模式, 也就是只读模式;

性能测试数据

toadb-06 测试

  • 测试配置
    测试机配置 1CPU, 8*2 cores ,2.5GHZ
    磁盘 SSD

  • 测试数据量
    scale = 10
    最大表10*100000条数据(一百万条)

  • 加载数据时间
    用时12h2m2s

[senllang@hatch benchmark]$ ./benchmarkBuildData.sh 10
... 

insert into toad_accounts aid:1000000
load toad_accounts endTime: 2024-01-26 02:35:09
begin time:2024-01-25 14:33:07
end time  :2024-01-26 02:35:09
---------------------------------------------------------
load data finish.
total elapse time: 12h2m2s
create table elapse time:
total of load table data elapse time: 12h2m2s
total of load toad_branches data elapse time:
total of load toad_tellers data elapse time:
total of load toad_accounts data elapse time: 12h2m2s
  • 加载数据大小

    [senllang@hatch toadbtest]$ ll -h
    -rw-r--r--. 1 senllang develops 732K Jan 26 02:35 grp_toad_accounts
    -rw-r--r--. 1 senllang develops 8.0K Jan 25 14:33 grp_toad_branches
    -rw-r--r--. 1 senllang develops 4.0K Jan 25 14:33 grp_toad_history
    -rw-r--r--. 1 senllang develops 8.0K Jan 25 14:33 grp_toad_tellers
    -rw-r--r--. 1 senllang develops 143M Jan 26 02:35 toad_accounts
    -rw-r--r--. 1 senllang develops  16K Jan 25 14:33 toad_branches
    -rw-r--r--. 1 senllang develops 4.0K Jan 25 14:33 toad_history
    -rw-r--r--. 1 senllang develops  20K Jan 25 14:33 toad_tellers
    
  • 只读测试
    ```shell
    [senllang@hatch benchmark]$ ./benchmarkRun.sh 10 3 600 5
    scale=10 runmode=3
    command infomation:/home/senllang/Dev/toadb/src/tools/tsql/toadsql -D /home/senllang/toadbtest/ -C
    datadir infomation:/home/senllang/toadbtest/
    pwd : /home/senllang/Dev/toadb/test/benchmark
    nbranches :10
    ntellers :100
    naccounts :1000000

Test process elapse(s) 570 tps=136.68
Test process elapse(s) 580 tps=136.70
Test process elapse(s) 590 tps=136.70

Test process elapse(s) 600 tps=136.69

test end.............
begin time: 2024-01-26 07:50:25
end time: 2024-01-26 08:00:26
Test process total runtimes(s) :10m1s
Test process total transactions :82156
Test process average tps=136.69

```

目录
相关文章
|
算法 关系型数据库 MySQL
TiDB保证数据一致性的策略与优势
【2月更文挑战第28天】TiDB作为一款分布式数据库,通过其独特的策略和优势,确保在分布式环境下数据的一致性。本章将详细探讨TiDB保证数据一致性的核心策略,包括其采用的分布式一致性协议、数据复制机制以及容错处理等方面,并阐述这些策略所带来的优势。通过理解TiDB的数据一致性保证机制,读者将能更深入地认识其作为分布式数据库的价值。
|
网络安全 Nacos 数据安全/隐私保护
nacos常见问题之使用默认用户名密码提示错误如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
|
机器人 Java Linux
Webots机器人仿真入门(一)
Webots是一个开源的移动机器人仿真模拟器,内置了许多机器人模型。机器人造价普遍超出新手承受范围,对于新手来说使用仿真软件入门是一个不错的选择。
Webots机器人仿真入门(一)
|
域名解析 网络协议 算法
2023最新教程:阿里云免费SSL证书申请流程
2023最新教程:阿里云免费SSL证书申请流程,阿里云SSL免费证书在哪申请?一个阿里云账号一年可以申请20张免费SSL证书,很多同学找不到免费SSL的入口,阿小云来详细说下阿里云SSL证书免费申请入口链接以及免费SSL证书申请流程
908 0
|
Android开发
【错误记录】Android Studio 编译报错 ( Error:Connection timed out: connect | 更新配置依赖仓库方式 )
【错误记录】Android Studio 编译报错 ( Error:Connection timed out: connect | 更新配置依赖仓库方式 )
1132 0
【错误记录】Android Studio 编译报错 ( Error:Connection timed out: connect | 更新配置依赖仓库方式 )
|
9月前
|
分布式计算 并行计算 调度
基于HPC场景的集群任务调度系统LSF/SGE/Slurm/PBS
在HPC场景中,集群任务调度系统是资源管理和作业调度的核心工具。LSF、SGE、Slurm和PBS是主流调度系统。LSF适合大规模企业级集群,提供高可靠性和混合云支持;SGE为经典开源系统,适用于中小规模集群;Slurm成为HPC领域事实标准,支持多架构和容器化;PBS兼具商业和开源版本,擅长拓扑感知调度。选型建议:超大规模科研用Slurm,企业生产环境用LSF/PBS Pro,混合云需求选LSF/PBS Pro,传统小型集群用SGE/Slurm。当前趋势显示Slurm在TOP500系统中占比超60%,而商业系统在金融、制造等领域保持优势。
1750 32
|
监控 Java Linux
Java 性能调优:调整 GC 线程以获得最佳结果
Java 性能调优:调整 GC 线程以获得最佳结果
293 11
|
机器学习/深度学习 人工智能 自动驾驶
ONNX 在多模态应用中的角色
【8月更文第27天】随着人工智能技术的发展,多模态学习成为了一个热门的研究方向。多模态学习指的是结合多种不同类型的数据(如图像、文本和音频等)进行建模,以提取更丰富的信息并做出更准确的预测。Open Neural Network Exchange (ONNX) 作为一种开放的标准,支持多种机器学习框架之间的模型交换,为多模态应用的开发提供了强大的支持。本文将探讨 ONNX 在多模态应用中的作用,并通过具体的代码示例来展示如何利用 ONNX 来实现图像、文本和音频数据的融合处理。
589 1
|
Java Shell 开发工具
03. 【Java教程】在 MacOS 上安装 Java
03. 【Java教程】在 MacOS 上安装 Java
289 1