数据库时序数据库大数据物联网云原生【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址https://gitcode.com/GitHub_Trending/tde/TDengine点击查看免费下载taosperf 是 TDengine 运维工具箱Inspection Tools中的基准性能测试工具通过调用dd、fio、ping、iperf3等第三方工具量化评估 TDengine 部署环境的磁盘读写能力与节点间网络传输能力。本文完整介绍该工具的 local / ssh 两种运行模式、全部命令行参数、YAML 配置文件的写法与字段含义、perf_report.md结果报告的结构并给出可直接复制的实战命令帮助你在部署 TDengine 之前或日常巡检时快速验证硬件环境是否满足性能预期。工具定位为什么要做基准性能测试TDengine 部署环境的磁盘读写和网络传输能力会直接决定数据库的查询与写入性能上限。在真实集群中数据落盘的顺序写/随机读吞吐、各节点之间同步与复制的网络带宽都是影响整体服务质量的关键因素。taosperf 正是为此设计的轻量评估手段磁盘性能在指定的存储路径上用dd与fio执行顺序写、顺序读、随机写、随机读等测试得到实际写入速度与读取速度网络性能用ping探测节点间的连通性与丢包情况用iperf3测量本机到对端节点的实际 TCP 吞吐。根据官方工具总览 Inspection Tools 的说明该工具当前面向 TDengine Enterprise企业版用户提供要求 TDengine v3.1 或更高版本并已在 Kylin V10、Ubuntu 20.04.2、CentOS 7.9、LinxOS 6.0.99、openEuler 23.09、Debian 12 等系统上完成验证。两种运行模式local 与 sshtaosperf 支持两种运行模式分别适用于单机自测与全集群批量测试local 模式测试当前主机自身的磁盘读写性能同时可通过--ip参数指定一个对端节点额外测试本机到该节点的网络吞吐ssh 模式按配置文件中的节点清单通过 SSH 依次在集群所有节点上执行磁盘测试并测试节点之间的网络传输能力。local 模式usage: taosperf local [-h] [--config CONFIG] [--backend] [--test-item {all,disk,network}] [--result RESULT] [--log-level {debug,info}] [--ip IP]ssh 模式usage: taosperf ssh [-h] [--config CONFIG] [--backend] [--test-item {all,disk,network}] [--result RESULT] [--log-level {debug,info}]两个模式的完整可选参数如下对应-h/--help输出参数短参数说明--config CONFIG-f CONFIG配置文件路径不指定时默认读取工具运行当前目录下的配置文件--backend-b后台运行测试进程默认前台运行--test-item {all,disk,network}-ti测试项all磁盘 网络、disk仅磁盘、network仅网络默认all--result RESULT-r RESULT结果报告输出目录不指定时默认输出到工具运行当前目录--log-level {debug,info}-l日志级别支持debug、info默认info--ip IP-i IP仅 local 模式可用指定目标节点 IP 后只测试本机与目标机器之间的网络传输能力参数使用要点config参数用于加载 配置文件具体字段含义见下文配置文件说明result只决定报告目录报告文件名固定为perf_report.mdbackend适合在巡检脚本或后台任务中运行避免长时间测试阻塞终端test-item可以让你在怀疑网络或磁盘单一方面出现瓶颈时只跑对应的那组测试缩短整体耗时ip仅作用于网络测试例如./taosperf local -i 192.168.1.1表示只评估本机到192.168.1.1的网络能力。需要说明的是英文版文档以子命令形式展示为taosperf local/taosperf ssh中文版应用示例中则使用-m local/-m ssh的写法两者语义一致实际使用时请以你所安装版本的taosperf --help输出为准。配置文件详解配置文件采用 YAML 格式用于定义集群节点信息、待测试的磁盘路径以及磁盘和网络测试所调用的第三方工具命令。以下为完整配置示例来自文档并补充了字段注释######################################################## # Configuration # ######################################################## # 集群信息每个节点的连接信息 需要测试磁盘性能的存储路径 nodes: - ip: 192.168.1.101 user: root password: yourpassword port: 22 dirs: - dir: /data1 - dir: /data2 - ip: 192.168.1.102 user: root password: yourpassword port: 22 dirs: - dir: /data1 - dir: /data2 - ip: 192.168.1.103 user: root password: yourpassword port: 22 dirs: - dir: /data1 - dir: /data2 # 磁盘和网络能力的第三方工具运行方式 cmd: - io: dd: write: dd if/dev/zero of[file] bs400K count50000 oflagdirect convfsync read: dd if[file] of/dev/null bs1M count20000 iflagdirect fio: write: fio --namedb_write_test --filename[file] --size5G --bsrange480k-500k --rwrandwrite --ioenginelibaio --direct1 --numjobs4 --iodepth32 --group_reporting read: fio --namedb_read_test --filename[file] --size5G --bs1M --rwrandread --ioenginelibaio --direct1 --numjobs4 --iodepth32 --group_reporting - network: ping: ping -c 10000 -i 0.1 -s 1024 [ip] iperf3: iperf3 -c [ip] -P 4 -t 120nodes 段集群节点与测试路径nodes是一个列表每个节点包含以下字段ip节点 IP 地址userSSH 登录用户名文档示例为root工具总览也要求以 root 或具备 sudo 权限的账户运行passwordSSH 登录密码如果节点间已配置无密码 SSH 登录则密码可省略portSSH 服务端口默认常用值 22dirs需要测试磁盘性能的存储路径列表每项通过dir指定例如/data1、/data2。这些路径应当对应 TDengine 实际数据目录所在挂载点以便评估真实数据盘的写入能力。cmd 段测试命令模板cmd段定义了磁盘io与网络network两组测试命令命令中的[file]与[ip]是占位符工具运行时会分别替换为实际的测试文件路径和节点 IP。dd 写测试dd if/dev/zero of[file] bs400K count50000 oflagdirect convfsyncbs400K每次读写 400KB 块count50000执行 50000 次合计写入约 20GB 数据避免小数据量掩盖磁盘真实性能oflagdirect绕过操作系统页缓存直接写入磁盘反映真实落盘性能convfsync结束时强制同步到磁盘保证测试数据确实写盘。dd 读测试dd if[file] of/dev/null bs1M count20000 iflagdirectbs1M、count20000以 1MB 块读取 20000 次约 20GBiflagdirect绕过页缓存直接读盘避免缓存命中导致读数虚高。fio 随机写测试fio --namedb_write_test --filename[file] --size5G --bsrange480k-500k --rwrandwrite --ioenginelibaio --direct1 --numjobs4 --iodepth32 --group_reporting--size5G每个 job 写入总量 5GB--bsrange480k-500k块大小在 480k500k 之间随机模拟接近 TDengine 实际数据块大小的写入负载--rwrandwrite随机写模式更贴近时间序列数据追加落盘之外的随机写场景--ioenginelibaio使用 Linux 原生异步 I/O--direct1绕过缓存直接读写--numjobs4并发 4 个 job--iodepth32每 job 异步队列深度 32--group_reporting多个 job 的结果合并汇总输出。fio 随机读测试fio --namedb_read_test --filename[file] --size5G --bs1M --rwrandread --ioenginelibaio --direct1 --numjobs4 --iodepth32 --group_reporting与写测试相比读测试固定--bs1M块大小并采用--rwrandread随机读模式其余参数一致。网络 ping 测试ping -c 10000 -i 0.1 -s 1024 [ip]发送 10000 个 ICMP 包间隔 0.1 秒、负载 1024 字节用于评估节点间连通性、往返时延与丢包率。iperf3 吞吐测试iperf3 -c [ip] -P 4 -t 120以客户端模式连接对端[ip]开启 4 个并发流-P 4持续测试 120 秒-t 120得到稳定的聚合吞吐带宽。结果文件perf_report.md工具运行结束后会在result指定目录默认当前目录生成测试报告perf_report.md内容包含两大部分集群磁盘与网络配置信息以及磁盘/网络测试结果。以下为文档给出的报告结构示例# 性能检查报告 时间2025-05-30 17:21:02 ## 磁盘配置 | FQDN | 磁盘名称 | 磁盘型号 | 序列号 | 磁盘类型 | 磁盘空间 | |--------|--------|------------------|------------------|--------|--------| | u1-11 | sda | INTEL_SSDSC2BB48 | 55cd2e414d66c8cd | SSD | 447.1G | | u1-11 | sdb | INTEL_SSDSC2BB48 | 55cd2e414d72e38b | SSD | 447.1G | | u1-11 | sdc | SAMSUNG_MZ7L31T9 | 5002538f3431f2c9 | SSD | 1.8T | | u1-11 | sdd | ST2000NX0273 | 5000c500f06b8e1f | HDD | 1.8T | #### 网络配置 | FQDN | 网卡名称 | 带宽 | |--------|--------|----------| | u1-11 | eno3 | 1000Mb/s | ## 磁盘性能 ### 1. 写盘命令 #### 1.1 dd 命令 dd if/dev/zero of[file] bs400K count50000 oflagdirect convfsync #### 1.2 fio 命令 fio --namedb_write_test --filename[file] --size5G --bsrange480k-500k --rwrandwrite --ioenginelibaio --direct1 --numjobs4 --iodepth32 --group_reporting ### 2. 读盘命令 #### 2.1 dd 命令 dd if[file] of/dev/null bs1M count20000 iflagdirect #### 2.2 fio 命令 fio --namedb_read_test --filename[file] --size5G --bs1M --rwrandread --ioenginelibaio --direct1 --numjobs4 --iodepth32 --group_reporting ### 3. 测试结果 | FQDN | 磁盘路径 | 测试工具 | 写入速度 | 读取速度 | |--------|--------|--------|-----------|----------| | u1-11 | /data1 | fio | 493MiB/s | 528MiB/s | | u1-11 | /data2 | fio | 87.0MiB/s | 106MiB/s |报告要点解读磁盘配置报告会采集每台被测机器的物理磁盘清单磁盘名、型号、序列号、SSD/HDD 类型、容量便于将测试结果与具体磁盘型号对应网络配置列出被测机器各网卡的名称与协商带宽如1000Mb/s作为网络吞吐结果的参照基准磁盘性能先完整记录实际执行的 dd / fio 读写命令保证结果可复现再给出按 FQDN 磁盘路径 测试工具维度的写入速度与读取速度汇总表。示例中/data1SSDfio 写 493MiB/s、读 528MiB/s而/data2HDD仅写 87.0MiB/s、读 106MiB/s可直观看出不同介质的数据盘性能差异——这正是判断数据目录是否需要拆分、是否需要更高规格存储的重要依据。实战示例以下命令覆盖了最常见的几种使用场景可直接在安装 taosperf 的节点上执行# 1. 测试本机的磁盘读写性能以及本机到其它节点的网络传输能力 ./taosperf -m local # 2. 测试本机的磁盘读写性能以及本机到指定节点192.168.1.1的网络传输能力 ./taosperf -m local -i 192.168.1.1 # 3. 测试集群所有节点的磁盘读写性能和相互间的网络传输能力 ./taosperf -m ssh # 4. 指定配置文件测试集群所有节点的磁盘读写和网络传输能力 ./taosperf -m ssh -f /path_to_file/perf.yaml # 5. 只测试集群所有节点间的网络传输能力 ./taosperf -m ssh -ti network # 6. 只测试集群所有节点的磁盘读写性能 ./taosperf -m ssh -ti disk对应英文版文档的子命令写法等价如下# 测试本机磁盘与网络连通性 ./taosperf local # 测试本机到指定对端节点 ./taosperf local -i 192.168.1.1 # 测试所有配置的集群节点使用 -f 指定配置文件 ./taosperf ssh -f /path/to/perf.yaml # 仅运行网络或磁盘测试 ./taosperf ssh -ti network ./taosperf ssh -ti disk使用前提与限制根据工具总览 Inspection Tools 中的说明使用 taosperf 前需满足以下条件工具当前仅对TDengine Enterprise 用户开放并要求TDengine v3.1 或更高版本以root身份运行或使用具备sudo权限的账户集群节点间需开启 SSH 连通若无法互连可在每个节点上分别以 local 模式运行工具若采用无密码 SSH 方式需同时配置当前主机能够 SSH 到自身x64 平台要求 GLIBC 2.17 及以上ARM 平台要求 GLIBC 2.27 及以上将配置文件中所有节点的 FQDN 与 IP 映射添加到/etc/hosts被测磁盘路径如/data1、/data2应真实存在且有足够空间因为 dd / fio 测试会写入 GB 级数据文件测试会消耗较多 I/O 与网络资源建议在业务低峰期或专用巡检窗口执行。小结taosperf 通过标准化的dd/fio/ping/iperf3命令组合把 TDengine 部署环境的磁盘读写吞吐和节点间网络带宽变成可量化的报告数据。配合perf_report.md中的磁盘型号、网卡带宽与实测读写速度对照表你可以快速定位数据盘性能瓶颈、验证网络链路质量为 TDengine 集群的存储选型、数据目录规划与容量评估提供直接依据。建议将 taosperf 纳入部署前环境验收和日常巡检的固定流程与同目录下的 taosprecheck、taosinspect 等工具配合使用形成从环境检查、性能验证到运行期体检的完整运维闭环。赞分享数据库时序数据库大数据物联网云原生【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址https://gitcode.com/GitHub_Trending/tde/TDengine点击查看免费下载相关推荐TDengine 基准性能测试工具 taosperf 使用指南磁盘读写与网络传输能力评估TDengine 基准性能测试工具 taosperf 使用指南磁盘读写与网络传输能力评估 taosperf 是 TDengine 部署环境自带的基准性能测试工数据库时序数据库物联网大数据实时分析云原生如何快速配置NarratoAI从零开始打造AI视频解说平台如何快速配置NarratoAI从零开始打造AI视频解说平台 NarratoAI是一款基于AI大模型的自动化视频解说工具能够一键生成专业级视频解说内容。这款开AI 应用大模型音视频语音媒体生成Proxy革命性C多态库彻底告别继承的终极指南Proxy革命性C多态库彻底告别继承的终极指南 你是否厌倦了C中复杂的继承体系是否梦想着像Java或C 那样轻松实现多态同时又不牺牲性能微软开上一篇告别繁琐Git History批量导出功能让文件历史管理效率提升10倍下一篇ShinkaEvolve LLM动态选择多模型协作与成本优化策略创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考