toadb性能测试

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介: 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

```

目录
相关文章
|
网络安全 Nacos 数据安全/隐私保护
nacos常见问题之使用默认用户名密码提示错误如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
|
存储 消息中间件 SQL
搭建flume-1.9.0
Apache Flume 是一个从可以收集例如日志,事件等数据资源,并将这些数量庞大的数据从各项数据资源中集中起来存储的工具/服务,或者数集中机制。flume具有高可用,分布式,配置工具,其设计的原理也是基于将数据流,如日志数据从各种网站服务器上汇集起来存储到HDFS,HBase等集中存储器中
847 1
搭建flume-1.9.0
|
机器人 Java Linux
Webots机器人仿真入门(一)
Webots是一个开源的移动机器人仿真模拟器,内置了许多机器人模型。机器人造价普遍超出新手承受范围,对于新手来说使用仿真软件入门是一个不错的选择。
Webots机器人仿真入门(一)
|
分布式计算 并行计算 调度
基于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%,而商业系统在金融、制造等领域保持优势。
2619 32
|
机器学习/深度学习 人工智能 自动驾驶
ONNX 在多模态应用中的角色
【8月更文第27天】随着人工智能技术的发展,多模态学习成为了一个热门的研究方向。多模态学习指的是结合多种不同类型的数据(如图像、文本和音频等)进行建模,以提取更丰富的信息并做出更准确的预测。Open Neural Network Exchange (ONNX) 作为一种开放的标准,支持多种机器学习框架之间的模型交换,为多模态应用的开发提供了强大的支持。本文将探讨 ONNX 在多模态应用中的作用,并通过具体的代码示例来展示如何利用 ONNX 来实现图像、文本和音频数据的融合处理。
689 1
|
人工智能 自然语言处理 安全
创新不设限,灵码赋新能:通义灵码新功能深度评测
自从2023年通义灵码发布以来,这款基于阿里云通义大模型的AI编码助手迅速成为开发者心中的“明星产品”。它不仅为个人开发者提供强大支持,还帮助企业团队提升研发效率,推动软件开发行业的创新发展。本文将深入探讨通义灵码最新版本的三大新功能:@workspace、@terminal 和 #team docs,分享这些功能如何在实际工作中提高效率的具体案例。
|
监控 Java Linux
Java 性能调优:调整 GC 线程以获得最佳结果
Java 性能调优:调整 GC 线程以获得最佳结果
410 11
|
JSON 关系型数据库 MySQL
Mysql中JSON操作函数JSON_EXTRACT()
Mysql中JSON操作函数JSON_EXTRACT()
|
机器学习/深度学习 异构计算
【保姆级教程|YOLOv8改进】【3】使用FasterBlock替换C2f中的Bottleneck
【保姆级教程|YOLOv8改进】【3】使用FasterBlock替换C2f中的Bottleneck
|
机器学习/深度学习 数据采集 运维
【博士每天一篇文献-综述】2024机器遗忘最新综述之一:A Survey on Machine Unlearning Techniques and New Emerged Privacy Risks
本文综述了机器遗忘技术及其面临的新兴隐私风险,提出了面向数据和模型的分类法,分析了信息窃取和模型破坏攻击手段,探讨了相应的防御策略,并讨论了机器遗忘技术在大型语言模型、联邦学习和异常检测等领域的应用。
446 5