TD集群内存占用过高

1 TD简介

TDengine 是一款开源、云原生的时序数据库,专为物联网、工业互联网、金融、IT运维监控等场景设计并优化。它能让大量设备、数据采集器每天产生的高达 TB 甚至 PB级的数据得到高效实时的处理,对业务的运行状态进行实时的监测、预警,从大数据中挖掘出商业价值。
TDengine 完整的软件包包括服务端(taosd)、应用驱动(taosc)、用于与第三方系统对接并提供 RESTful 接口的 taosAdapter、命令行程序(CLI,taos)和一些工具软件。目前 taosdump、TDinsight 仅在 Linux 系统上安装和运行,后续将支持 Windows、macOS 等系统。TDengine 除了提供多种语言的连接器之外,还通过 taosAdapter 提供 RESTful 接口。

1.1 下载地址

https://docs.taosdata.com/get-started/package/

2 TD常用操作

2.1 Deb 安装

在这里插入图片描述

2.2 RPM 安装

在这里插入图片描述

2.3 tar.gz 安装

在这里插入图片描述

2.4 apt-get

在这里插入图片描述

2.5 Windows 安装

在这里插入图片描述

2.6 macOS 安装

在这里插入图片描述

3 TD常用操作(Linux 系统)

3.1 启动

启动服务进程:systemctl start taosd
停止服务进程:systemctl stop taosd
重启服务进程:systemctl restart taosd
查看服务状态:systemctl status taosd

3.2 创建库

CREATE DATABASE power KEEP 365 DURATION 10 BUFFER 16 WAL_LEVEL 1;

注意:创建一个名为 power 的库,这个库的数据将保留 365 天(超过 365 天将被自动删除),每 10 天一个数据文件,每个 VNode 的写入内存池的大小为 16 MB,对该数据库入会写 WAL 但不执行 FSYNC。

3.3 切换数据库

USE power;

3.4 创建超级表

CREATE STABLE meters (ts timestamp, current float, voltage int, phase float) TAGS (location binary(64), groupId int);

3.5 创建表

CREATE TABLE d1001 USING meters TAGS ("California.SanFrancisco", 2);

3.6 自动创建表

INSERT INTO d1001 USING meters TAGS ("California.SanFrancisco", 2) VALUES (NOW, 10.2, 219, 0.32);

注意:记录(NOW, 10.2, 219, 0.32)插入表 d1001。如果表 d1001 还未创建,则使用超级表 meters 做模板自动创建,同时打上标签值 “California.SanFrancisco”, 2。

4 taosAdapter

5 TD运行过程中问题

现象1: TD集群中taos占用内存过高

在这里插入图片描述
在这里插入图片描述
解决思路:
第一步:先通过【top】找到内存消耗高进程pid
第二步:通过pid 杀掉相应的kill -9 pid
第三步:执行【system start taos
第四步:验证taos是否正常运行
方式一:进入TD服务里边,通过运行show dnodes;查看节点的状态
方式二:在TD节点上,执行相应的SQL:curl -u 【user】:【passwd】 -d 'describe device_log_xxxxx' http://xx.xx.xx.xx:xxx/xxx/sql/xxx

现象2: TD集群中taosadapter占用内存过高

在这里插入图片描述
排查思路:
通过告警提示TD的内存占用过高,然后到对应节点查看,其中taos的内存很高,于是就先杀掉taos的进程,然后重新启动TD;但是发现没过两个小时,又开始报警;对比其他节点,发现该节点的taosadapter占用内存比其他节点都高。
然后想着内存能自己回收,就没管,于是后边就出现,内存使用率从75.066%飙升到99.998%
在这里插入图片描述
磁盘IO出现繁忙情况
在这里插入图片描述
磁盘IO等待时间是279.971ms
在这里插入图片描述
紧接着出现tdengine-xx实例状态offline或异常

告警对象:summary=TDengineMnodeInstanceException
告警内容:TDengine Mnode tdengine-xx实例状态offline或异常

解决方法:
第一步:进入终端 ,通过show dnodes;发现确实一个TD节点异常
第二步:通过【systemctl stop taosd】,在每个TD节点上执行,停止TD集群
第三步:通过【systemctl start taosd】,在每个TD节点上执行,启动TD集群
第四步:通过【top】,查看TD所有的进程是否都启动

现象3: TD集群中一个节点的taosadapter没有启动

在这里插入图片描述
排查思路:
通过【top】,发现TD一个节点中的taosadapter进程没有;然后,通过【systemctl status taosadapter】,查看 taosadapter的状态是disabled。
在这里插入图片描述
解决方法:
第一步:通过【systemctl start taosadapter】,启动taosadapter
第二步:通过【top】进行查看,发现之前taosadapter占用CPU和内存过高的问题,都不存在。
在这里插入图片描述
总结:遇到taosadapter和taos占用内存过高时,需要单独停止和启用。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值