插入数据时,taosd所占内存(RES)一直增长

【TDengine 使用环境】
测试

【TDengine 版本】

3.3.6.9

【操作系统以及版本】

6.1.30-xilinx-v2023.2

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

容器

【遇到的问题:问题现象及影响】

通过odbc connector(native连接)向tdengine server持续写入数据,发现taosd所占用RES一直增长(已经增长到332700KB),请问这个和什么有关系?

如果只有写入,不应该一直增长。 还有没有其他的查询业务呢?

只在程序启动时有查询业务。后续RES长到448980KB就增长缓慢了或者说稳定不增长了。另外我用的ODBC的参数绑定接口实现的insert数据。 但RES也不下降。

@TDuser_OEzS_1621 这个请看下后续

另外taosd的CPU使用率在insert过程中,基本稳定在10%左右,但有时会升到40%-50%然后再下降到10%左右,请问这个是什么原因?

写入的数据先保存在内存中,达到一定量后,才会进行一次落盘写入磁盘文件中。应该是这个原因。

好的,谢谢。哪这个内存buffer的大小可以配置吗?

可以,是在 创建 db 的时候设置的,后续可以动态修改。
alter database buffer xxxx;

好的,谢谢。还有CPU使用率升高到50%然后下降的现象是为什么呢?

落盘的时候会有一些操作,比如cache最新数据等,会消耗一定的cpu

那我们能调整配置来控制这个突然升高的CPU使用率吗?

执行这个命令:
top -Hp <taosd进程号>
观察一下cpu突然升高一段时间内,是什么线程占用的。

好的,我们监控下线程CPU占用情况

以上为taos进程在CPU占用率较高时,其CPU占用率较高的几个线程。

从这里看就是落盘的线程vnode-commit占用cpu高。

总共有几个核?持续时间长吗?

有4个核。CPU较高的时间大概有5s。

那应该正常。

那有什么配置,能让这个CPU占用率不这么高吗?

你打开了 last cache吗?
执行 show create database dbname\G; 看一下。

lQLPJxJ3ZtFD2W9RzQIgsP5AsFcg95VJCRYY5xScCAA_544_81

没改过默认配置,没特意配过last cache.