toadb性能测试

简介: 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

```

目录
相关文章
|
5月前
|
人工智能 自然语言处理 大数据
2026年1688开店真能赚到钱吗?最新投入产出全解析,AI红利期已至!
2026年1688全面AI化,开店年费9988元起(诚信通AI版),升级选项达3.68万–10.68万元/年;另需数字推广(约3万/年)及人力投入。平台推出“三保”服务(保5万访客、500询盘、300订单),未达标返6688元红包。AI正驱动决策、组织与竞争力三大位移,助力源头工厂智能升级。
|
8月前
|
消息中间件 运维 物联网
语音通知
适用于科技公司服务器或物联网设备异常时的语音告警通知。开通语音服务后,可申请资质、话术与模板,通过API调用实现语音电话告警,支持变量替换与呼叫记录查询,提升运维响应效率。(238字)
|
10月前
|
设计模式 算法 安全
JUC系列之《深入理解AQS:Java并发锁的基石与灵魂 》
本文深入解析Java并发核心组件AQS(AbstractQueuedSynchronizer),从其设计动机、核心思想到源码实现,系统阐述了AQS如何通过state状态、CLH队列和模板方法模式构建通用同步框架,并结合独占与共享模式分析典型应用,最后通过自定义锁的实战案例,帮助读者掌握其原理与最佳实践。
|
JSON 前端开发 安全
CORS 是什么?它是如何解决跨域问题的?
【10月更文挑战第20天】CORS 是一种通过服务器端配置和浏览器端协商来解决跨域问题的机制。它为跨域资源共享提供了一种规范和有效的方法,使得前端开发人员能够更加方便地进行跨域数据交互。
|
人工智能 自动驾驶 数据安全/隐私保护
《人工智能新质生产力:GDP增长的未来引擎,究竟能贡献多少?》
在科技飞速发展的时代,人工智能作为新质生产力的代表,正以前所未有的态势推动全球经济格局变革。据普华永道预测,到2030年AI将带动全球GDP增长14%,相当于15.7万亿美元。在中国,过去三年AI核心产业增速显著,2023年规模达5784亿元,预计2030年超过1万亿元,带动相关产业超10万亿元。AI通过产业升级、消费升级、投资和出口等方面大幅提升生产效率,创造新的经济增长点,尽管存在技术和社会政策的不确定性,但其对GDP的贡献率有望持续提升,为全球经济带来新机遇。
1305 5
《人工智能新质生产力:GDP增长的未来引擎,究竟能贡献多少?》
|
SQL 缓存 测试技术
RESTful API设计的最佳实践:构建高效、可维护的Web服务接口
【6月更文挑战第11天】构建高效、可维护的RESTful API涉及多个最佳实践:遵循客户端-服务器架构、无状态性等REST原则;设计时考虑URL结构(动词+宾语,使用标准HTTP方法)、使用HTTP状态码、统一响应格式及错误处理;确保数据安全(HTTPS、认证授权、输入验证);实施版本控制;并提供详细文档和测试用例。这些实践能提升Web服务接口的性能和质量。
ly~
|
缓存 监控 安全
反向代理服务器的常见故障有哪些?
反向代理服务器常遇到的故障包括配置错误、网络问题、性能瓶颈及安全漏洞。配置相关故障如错误监听端口、域名配置不当及代理转发规则错误,可使用`netstat -tuln`检查端口状态,并验证域名及DNS解析。网络故障涉及连接中断和带宽不足,利用`ping`和`traceroute`检测连通性,用`iftop`监控带宽。性能问题如资源耗尽和缓存不一致需通过`top`监控资源使用,并检查缓存策略。安全故障包括DDoS攻击和配置漏洞,应使用流量分析工具检测异常并加强安全配置,确保SSL/TLS加密和访问控制策略正确无误。
ly~
1152 3
|
网络协议 程序员 数据库
什么是公网IP和内网IP
【10月更文挑战第27天】公网IP与内网IP是网络通信中的两个重要概念。公网IP是互联网上的唯一标识,而内网IP仅在局域网内部有效,用于局域网内的设备通信。由于IPv4地址资源有限,通常一个公司或家庭只有一个公网IP,内部设备通过NAT(网络地址转换)技术共享该公网IP访问互联网。这样不仅节省了IP资源,还提高了网络安全性和稳定性。
1880 0
|
存储 消息中间件 SQL
|
传感器 编解码 Ubuntu
ESP32-C3入门教程 基础篇(七、LEDC — LED PWM 控制器)
测试第7课,补一补基本的PWM控制器的测试。 说明一下,ESP32-C3没有MCPWM硬件,所以测试只有LEDPWM, 如果想用ESP32-C3控制电机,可以考虑使用 RMT,后期有机会测试一下。
1753 0
ESP32-C3入门教程 基础篇(七、LEDC — LED PWM 控制器)