taosadapter进程CPU占用率高

【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查询容器日志,并未发现相关联的报错日志。

可以单独重启下 taosadapter服务吗

进入容器命令行重启taosadapter服务?我重启容器解决的,基本每隔两天重启一次。之前用3.3.6版本时,登录*:6060管理页面时还报错,说是pool connection已用完无法登录,现在3.3.8.8能正常登录页面,但这个CPU占用率高的现象还是照旧。

在没有任何业务写入或查询的时候,taosadapter 进程的 cpu 占用也高吗?

我刚重启了容器,通过*: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就停止增长了。

是的,当我发现容器的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

taosadapter进程占用高的时候,业务写入的数据是接近实时的,没有发现写入明显延迟的现象,但查询数据就非常慢。

TDengine.Connector 3.1.9 : 这个jdbc 连接器的版本吗?如果是的话,那就有点太低了,建议更新到最新的版本。

nuget.org上最新的版本是3.1.9,官方可否将其更新到最新版本?

请从 maven仓库中拉取吧。

最新的Connector只支持java吗?我的工程项目是ASP.net core。

有 c# 连接器。请参考官网文档:TDengine TSDB C# Connector | TDengine 文档 | 涛思数据

我已经看过了,包括github上dotnet的连接器最新的就是3.1.9,所以要是有新版的麻烦官方尽快更新下。

更新版本都会在官网发布的。

看一下哪个线程在占用 cpu

top -Hp `pidof taosadapter`

刚看到nuget的tdengine.connector版本8天前更新到3.1.10,但github上最新的release却还是3.1.9,先试试看3.1.10有没有改善。GitHub - taosdata/taos-connector-dotnet: TDengine connector for .Net