【TDengine 使用环境】
测试
【TDengine 版本】
3.3.7.0
【操作系统以及版本】
centos7
【部署方式】容器/非容器部署
容器
【集群节点数】
【集群副本数】
【描述业务影响】
【问题复现路径/shan】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
taosadapter不定时崩溃,崩溃之前的报错日志如下:
01/09 10:29:44.296731 00000352 MON ERROR upload_id:0x200000000025bf00, upload to keeper error, err:Post “``http://127.0.0.1:6043/adapter_report”:`` context deadline exceeded (Client.Timeout exceeded while awaiting headers)
除此之外还有一个空的【taosadapter_32_20260109.log.1_lock】文件。
现在的问题是taosKeeper运行正常,所以不明白为什么会产生上面的错误日志。
还有崩溃之前有大量的慢查询日志产生,和很多【msg:Table does not exist】错误(因为业务原因,可能会产生一些对不存在表的查询请求),不知道taosadapter崩溃是否和这些查询操作有关?
希望能得到帮助,感觉目前tdengine不太稳定,总是在资源占用率并不高的情况下崩溃。
【资源配置】
【报错完整截图】(不要大段的粘贴报错代码,论坛直接看报错代码不直观)
请在机器系统上设置一下 生成 core 文件的配置。当taosadapter奔溃后,gdb 一下 core文件,看一下堆栈信息。
是否有不重新创建容器就能生成core的方法,怕重新创建容器无法再现了
方式一:
1、使用命令 ulimit -c unlimited (不限制core文件大小)来开启 core dump 功能
2、指定内核转储的文件名和目录:sudo sysctl -w kernel.core_pattern='/corefile/core-%e-%p', 其中/corefile目录是可以自己指定的。
永久化:echo '/corefile/core\_%e-%p' | sudo tee /proc/sys/kernel/core_pattern
3、查询sysctl kernel.core_pattern,是否设置成功。
方式二:
1. 修改/etc/profile文件添加参数;
在profile文件中加入ulimit -c unlimited
保存退出,重启服务器,改文件就长久生效,或者#source /etc/profile,不重启服务器,使用source使文件马上生效。
2. 指定生成文件的路径和名字;
执行# vim /etc/sysctl.conf,进入编辑模式,加入下面两行
kernel.core_pattern=/var/core/core_%e_%p
kernel.core_uses_pid=0
在var下创建core目录,用# sysctl –p /etc/sysctl.conf,是修改马上生效。
faq:上面两点都设置好了,但还是没有生成core文件
A、对/corefile目录没有写权限;或该目录所在的磁盘空间不足。
同样的问题,版本:V3.3.8.1,配置了coredump但是没有文件生成,目录权限也设置成777了,磁盘空间也有
那也有可能是 OOM,不会生成core文件。可以在系统日志中确认一下是哪种情况:
dmesg -T | grep taosd