一键获取测试脚本,轻松验证“TSBS 时序数据库性能基准测试报告”

Posted 涛思数据TDengine

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一键获取测试脚本,轻松验证“TSBS 时序数据库性能基准测试报告”相关的知识,希望对你有一定的参考价值。

如何运用测试脚本进行一键复现

基于 TDengine 3.0 TSBS 基准测试报告,此前我们已经输出了系列文——为什么选择 TSBS 作为测试平台写入性能对比查询性能对比,分别就 TSBS 及测试环境、写入性能及开销、查询性能及开销进行了相关解读。在本篇文章中,我们将为想要验证本报告测试结果的小伙伴,分享进行报告测试复现的详细步骤。

数据建模

在 TSBS 框架中, TimescaleDB 和 InfluxDB 会自动创建相应的数据模型并生成对应格式的数据。本文不再赘述其具体的数据建模方式,只介绍 TDengine 的数据建模策略。

TDengine 一个重要的创新是其独特的数据模型——为每个设备创建独立的数据表(子表),并通过超级表(Super Table)在逻辑上和语义上对同一采集类型的设备进行统一管理。针对 DevOps 场景的数据内容,我们为每个设备 (这里是 CPU)创建了一个表,用以存储该表的时序数据。我们在 TDengine 中使用 hostname 作为子表的名称(因为hostname 可以作为每个设备的标识 ID),并使用如下的语句创建名为 CPU 的超级表,包含 10 个测量值和 10 个标签。

create stable cpu (ts timestamp,usage_user bigint,usage_system bigint,usage_idle bigint,usage_nice bigint,usage_iowait bigint,usage_irq bigint,usage_softirq bigint,usage_steal bigint,usage_guest bigint,usage_guest_nice bigint)
tags (hostname varchar(30), region varchar(30),datacenter varchar(30),rack varchar(30),os varchar(30),arch varchar(30),team varchar(30),service varchar(30),service_version varchar(30),service_environment varchar(30))

然后 ,我们使用如下语句创建名为 host_0 的子表:

create table host_0 using cpu (hostname,region,datacenter,rack,os,arch,team,service,service_version,service_environment)
tags (\'host_0\',\'eu-central-1\',\'eu-central-1a\',\'6\',\'Ubuntu15.10\',\'x86\',\'SF\',\'19\',\'1\',\'test\')

上述语句创建了一个子表。由此可知,对于 100 个设备(CPU)的场景 一,我们将会建立 100 个子表。对于 4000 个设备的场景二,系统中将会建立 4000 个子表用以存储各自对应的数据 。

软件版本和配置

本报告仅仅比较 TDengine ( Time Series Database )、InfluxDB 与 TimeScaleDB, 下面对使用的版本和配置做出说明。

TDengine

我们直接采用 TDengine Ver3.0,从 GitHub 克隆 TDengine 代码编译版本作为性能对比的版本。

gitinfo: c90e2aa791ceb62542f6ecffe7bd715165f181e8

在服务器上编译安装运行。

cmake .. -DDISABLE_ASSERT=true -DSIMD_SUPPORT=true -DCMAKE_BUILD_TYPE=Release -DBUILD_TOOLS=false
make -j && make install

在 TDengine 的配置文件中设置了四个涉及查询的配置参数。

  1. numOfVnodeFetchThreads 4
    queryRspPolicy 1
    compressMsgSize 128000
    SIMD-builtins 1

参数设置解读:

  • numOfVnodeFetchThreads 设置了 Vnode 的 Fetch 线程数量为 4 个,
  • queryRspPolicy 用来打开 query response 快速返回机制
  • compressMsgSize 的作用是自动压缩 TDengine 在传输层上大于 128,000 bytes 的消息
  • 如果 CPU 支持,SIMD-builtins 可以启用内置的 FMA/AVX/AVX2 硬件加速

如上所述,TDengine 建库默认创建 6 个 vnodes,即创建的表会按照表名随机分配到 6 个虚拟节点(virtual node, VNode) 中。打开 LRU 缓存,设置为 last_row 缓存模式。对于场景一和场景二,stt_trigger 设置为 1,此时 TDengine 会准备一个 Sorted Time-series Table (STT) 文件,当单表写入量小于 minimum rows 时,数据会直接保存在 STT 文件中,当 STT 文件中无法容纳新数据时,系统就会将 STT 中的数据整理后再写入到数据文件中。对于其他的场景(场景三、四、五),stt_trigger 设置为 8,即允许最多生成 8 个 STT 文件。针对表较多的场景,需要适度增加 STT 的值,以此来获得更好的写入性能。

TimescaleDB

为确保结果具有可比性,我们选用 TimescaleDB 版本 version 2.6.0。为获得较好的性能,TimescaleDB 需要针对不同的场景设置不同的 Chunk 参数,不同场景下参数的设置如下表所示。

上述参数的设置,充分参考了《TimescaleDB vs. InfluxDB》(如下链接) 中推荐的配置参数设置,以确保能够最大化写入性能指标。

TimescaleDB vs. InfluxDB: Purpose Built Differently for Time-Series Data. https://www.timescale.com/blog/timescaledb-vs-influxdb-for-time-series-data-timescale-influx-sql-nosql-36489299877/

InfluxDB

我们选择了 InfluxDB version 1.8.10。这里没有使用 InfluxDB 最新的 2.x 版本是因为 TSBS 没有对其进行适配,所以选用了 InfluxDB 能够运行 TSBS 框架的最新版本。同样,我们采用《TimescaleDB vs. InfluxDB》中推荐的方式配置 InfluxDB,将缓冲区配置为 80G,以便 1000W 设备写入时能够顺利进行,同时开启 Time Series Index(TSI)。配置系统在系统插入数据完成 30s 后开始数据压缩。

  1. cache-max-memory-size = "80g"
    max-values-per-tag = 0
    index-version = "tsi1"
    compact-full-write-cold-duration = "30s"

测试步骤

硬件准备

为达到与 TimescaleDB vs. InfluxDB 对比报告中的环境高度接近,我们使用亚马逊 AWS 的 EC2 提供的 r4.8xlarge 类型实例作为基础运行平台,包括 1 台服务器、1 台客户端共两个节点构成的环境。客户端与服务器硬件配置完全相同,客户端与服务器使用 10 Gbps 网络连接。配置简表如下:

服务器环境准备

为运行测试脚本,服务器 OS 需要是 ubuntu20 以上的系统。AWS EC2 的服务器系统信息如下:

  1. OS: Linux tv5931 5.15.0-1028-aws #32~20.04.1-Ubuntu SMP Mon Jan 9 18:02:08 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
  2. Gcc:gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04)
  3. 基础环境,版本信息为:Go1.16.9 , python3.8 , pip20.0.2 (无需手动安装,测试脚本将自动安装)
  4. 编译依赖:gcc , cmake, build-essential, git, libssl-dev (无需手动安装,测试脚本将自动安装)

开始前请做两个配置:

  1. client 和 server 配置 ssh 访问免密,以便脚本可不暴露密码,可参考文档:免密配置(https://blog.csdn.net/qq_38154295/article/details/121582534)。
  2. 保证 client 和 server 之间所有端口开放。

获取测试脚本

为便于重复测试,隐藏繁琐的下载、安装、配置、启动、汇总结果等细节,整个 TSBS 的测试过程被封装成一个测试脚本。重复本测试报告,需要先下载该测试脚本,脚本暂支持 ubuntu20 以上的系统。以下操作要求具有 root 权限。

  1. 在客户端机器,进入测试目录拉取代码,默认进入 /usr/local/src/ 目录:
  1. cd /usr/local/src/ && apt install git && git clone https://github.com/taosdata/tsbs.git && cd tsbs/scripts/tsdbComp

      2. 修改配置文件 test.ini 中服务端和客户端的 IP 地址(这里配置 AWS 的私网地址即可)和 hostname,如果服务器未配置免密,还需要配置服务器端的 root 密码:

  1. clientIP="192.168.0.203" #client ip
    clientHost="trd03" #client hostname
    serverIP="192.168.0.204" #server ip
    serverHost="trd04" #server hostname
    serverPass="taosdata123" #server root password

     

一键执行对比测试

执行以下命令:

  1. nohup bash tsdbComparison.sh > test.log &

测试脚本将自动安装 TDengine、InfluxDB、TimeScaleDB 等软件,并自动运行各种对比测试项。在目前的硬件配置下,整个测试跑完需要大约一天半的时间。测试结束后,将自动生成 CSV 格式的对比测试报告,并存放在客户端的 /data2 目录。

写在最后

阅读完毕,你一定更加深入地了解了 TDengine 的数据建模、三大数据库测试版本和配置,以及如何运用测试脚本进行一键复现。如果有小伙伴想要验证 TDengine 的报告结果,欢迎按照上述步骤进行操作,检验测试结果,有任何问题都欢迎大家和我们及时沟通。现在添加小T vx:tdengine1,可以邀请你加入 TDengine 用户交流群,和更多志同道合的开发者一起聊技术、聊实战。

如何轻松建站?站点一键部署搭建(详细教程)

越来越多的人选择个人建站,个人站长虽然门槛很低,但是有些朋友觉得Linux服务器各种复杂的命令脚本让自己没法搭建环境。今天就给大家推荐一款使用方便、功能强大的快速建站工具——云帮手,支持 Linux 与 Windows 系统,可一键配置搭建环境、部署网站、数据库、FTP等,帮您大大提升建站效率。

一键源码部署,快速搭建网站

云帮手自带一键源码部署功能,可一键部署各种程序,操作极为简单。今天我们就以快速搭建 WordPress 博客网站为例进行演示。

注:WordPress 是一个以 PHP 和 MySQL 为平台的自由开源的博客软件和内容管理系统。WordPress 具有插件架构和模板系统,是目前因特网上最流行的博客系统,甚至是很多知名的网站官网均是使用 WordPress 进行搭建。

1、登陆云帮手管理面板进入站点管理页,点击源码部署,在这里我们可以一键快速部署包括 WordPress 在内的诸多 CMS 、论坛等
技术图片

2、如果一键部署系统所需PHP版本不符,可以切换至环境管理中安装相应的PHP版本

3、在部署站点页输入自己的站点名称和绑定域名,点击下一步 ;数据库和FTP页面可直接进入下一步
技术图片
4、耐心等待片刻 WordPress源码就会部署完成,记录数据库名、账户、密码

技术图片

5、在浏览器内输入刚才的域名进行访问,此时可以看到 WordPress 后台的配置界面,点击现在就开始

技术图片
6、将步骤4内创建好的数据库信息复制粘贴下来,然后点击提交 ,进入最后的配置界面点击进行安装

技术图片

7、此时进入站点配置界面,输入站点标题、用户名、密码、邮箱,然后点击安装WordPress

技术图片

8、等待几秒后 WordPress 就已经安装完成,点击登陆按钮进入 WordPress 的后台进行页面设置

技术图片

9、最后输入域名访问,就可以正常访问看到网站首页了

技术图片

手动上传自己的源码搭建网站

由于一键部署功能支持的程序终究有限,接下来还会说到如何手动上传自己的源码搭建网站。

1、登陆云帮手,打开站点管理,点击“创建新站点”,在弹出的站点信息页面输入站点名称和域名

技术图片

2、在刚创建好的站点后方点击浏览目录进入相应目录

技术图片

3、勾选目录下的全部文件并删除

技术图片

4、然后点击上传按钮,将源码文件上传

5、如果你的域名已经完成了解析,源码上传后直接输入网站域名就可以正常访问了

技术图片

云帮手快速建站,集合站点管理、数据库管理和FTP管理三大功能,应该满足你的建站需求了。
今天分享到这里,顺便分享一下云帮手下载地址: (点击官网下载

以上是关于一键获取测试脚本,轻松验证“TSBS 时序数据库性能基准测试报告”的主要内容,如果未能解决你的问题,请参考以下文章

如何轻松建站?站点一键部署搭建(详细教程)

bat脚本--android adb一键截图

▶▶▶▶▶shell一键部署------编译安装LNMP

红米开发版可以轻松获取ROOT?

VPS服务器性能一键测试脚本_IP路由/CPU基准/内存读取/下载上传速率测试脚本

一键获取数据库整体信息脚本