mk
(mk)
2025 年12 月 31 日 23:00
1
【TDengine 使用环境】生产环境
【TDengine 版本】3.3.8.8
【操作系统以及版本】UOS 1070a
【部署方式】容器部署
【集群节点数】无集群
【集群副本数】无集群
【描述业务影响】写入数据耗时时间逐渐变长,容器资源占用也逐渐变高。
【问题复现路径/shan】asp.net core 10.0项目,使用TDengine.Connector 3.1.9,调用Client.SchemalessInsert(lines, TDengineSchemalessProtocol.TSDB_SML_LINE_PROTOCOL, TDengineSchemalessPrecision.TSDB_SML_TIMESTAMP_MILLI_SECONDS, 0, 0);写入数据。
【遇到的问题:问题现象及影响】使用了计时器记录写入完成所需的时间,一次数据量约4000行,隔10秒写入一次,首次写入(容器和程序首次启动)时一次耗时约2秒,容器的CPU和内存占用都为正常。程序持续写入若干天以后,发现耗时长达100多秒,容器中taosadapter进程的CPU占用率100%,内存占用率达到3G以上,停止程序后,taosadapter进程持续高资源占用率没有变化。重启容器后恢复正常,但程序写入数据依然会逐渐增加资源占用导致写入耗时越来越长。
【资源配置】CPU:AMD Ryzen5 3600(6核12线程),内存:16G。
【报错完整截图】使用docker logs查询容器日志,并未发现相关联的报错日志。
mk
(mk)
2026 年1 月 3 日 12:48
3
进入容器命令行重启taosadapter服务?我重启容器解决的,基本每隔两天重启一次。之前用3.3.6版本时,登录*:6060管理页面时还报错,说是pool connection已用完无法登录,现在3.3.8.8能正常登录页面,但这个CPU占用率高的现象还是照旧。
在没有任何业务写入或查询的时候,taosadapter 进程的 cpu 占用也高吗?
mk
(mk)
2026 年1 月 4 日 23:17
5
我刚重启了容器,通过*:6060管理页面,查询了select * from log.adapter_c_interface,发现重启前taos_connect_total 数值达到了209354,其他大部分数值也是二三十万的样子,貌似是把连接池全占满了,而重启了容器之后,taos_connect_total 数值恢复为17个,其他数值恢复为200来个,CPU等资源占用也恢复正常。我的项目是ASP.net core 10.0,TDengine.Connector 3.1.9,通过SchemalessInsert方法持续每间隔10秒写入数据。
启动业务后,taos_connect_total 每大概过一分钟就增长50多个。查询之前的日志,taos_connect_total 达到209354就停止增长了。
mk
(mk)
2026 年1 月 4 日 23:21
6
是的,当我发现容器的taosadapter进程占用高的时候,就把业务的程序终止了,想看看占用是否会降低,但过去了两天,发现占用率依然跟之前一样高没有变化。通过重启容器来恢复。查看重启后容器日志,发现有将近一千多条移除任务的日志:
01/04 22:32:38.774985 00000347 C TSD INFO vid:4, fid:2045, taskId:1604 is removed from retention monitor, number of tasks:1
mk
(mk)
2026 年1 月 4 日 23:24
7
taosadapter进程占用高的时候,业务写入的数据是接近实时的,没有发现写入明显延迟的现象,但查询数据就非常慢。
mk:
TDengine.Connector 3.1.9
TDengine.Connector 3.1.9 : 这个jdbc 连接器的版本吗?如果是的话,那就有点太低了,建议更新到最新的版本。