Tdengine 持续写入问题

【TDengine 使用环境】
测试

【TDengine 版本】
3.4.0

【操作系统以及版本】
centOS7.9

【部署方式】容器/非容器部署

非容器

【集群节点数】
3

【集群副本数】
3

【描述业务影响】

【问题复现路径/shan】做过哪些操作出现的问题

【遇到的问题:问题现象及影响】
已经提了很多次问题,希望这次一次性解决
预先向kafka写入足够的数据 ,flink 消费kafka消息持续批量写入数据库。
写入性能越来越差
建库语句:
CREATE DATABASE ja_iiot_ts_tag VGROUpS 30 CACHEMODEL ‘last_row’ BUFFER 1024 PAGES 4096 PAGESIZE 24 WAL_LEVEL 1 DURATION 1d STT_TRIGGER 2 REPLICA 3 ;

超级表建表语句:
CREATE STABLE IF NOT EXISTS ts_kv (ts TIMESTAMP, tag_val DOUBLE ) TAGS (tag_id INT)

采用单列模式,100W采集点100W张子表,每秒一条数据。

【资源配置】
3*128核128G集群

【报错完整截图】(不要大段的粘贴报错代码,论坛直接看报错代码不直观)


一开始稳定写入,一段时间后出现周期性波动,且越来越差,如何调整才能使得写入持续且稳定(磁盘为HDD)

这些信息不足以分析。出现问题时,大概的排查方向:
1、taosd 服务此时的资源情况:cpu占用率、内存占用量、磁盘IO情况、网络情况;
2、top -Hp `pidof taosd` 看看有没有长期占用cpu高的线程

3、客户端是使用 什么方式写入的? restful 还是 websocket ? 看看taosadapter 除了内存高外,cpu占用率是多少?

image

在写入低点时,cpu使用率升高,merge占用了大量cpu


写入高点,cpu使用率降低


是不是我磁盘性能差的原因,连接方式的话,websocket连接

@TDuser_OEzS_1621 帮忙分析一下

可以修改一下 numOfCommitThreads 参数值试试。

在 taos.cfg 中添加一行(如果有这个参数,可以打开,并修改值):
numOfCommitThreads 16

我看文档说最大不超过4 还能配置16??

4 是缺省值,配置范围是 1 ~ 1024