如何解决过多的JDBC线程向TDengine插入数据时,表ID无效错误
我正在从事一个项目,该项目使用多个线程来模拟将密集数据写入时间序列数据库。这是 TDengine。
当我将线程数增加到 1000 以将数据写入 TDengine 服务器时,错误返回如下: java.sql.SQLException: TDengine ERROR (80000600): 无效的表 ID
同时返回一些错误: java.sql.SQLException: TDengine ERROR (80000014): 数据库未准备好
总写入请求数为 100,000,000,失败请求数为 19748
日志如下: 04/21 10:44:21.663735 00042155 DND msg:0x7fd7c8001140,app:0xf36233 type:create-table 被写入 mwrite queue:0x138eaa0,重试次数:0 04/21 10:44:21.664098 00042352 TDB 错误 vgId:3 无法获取表以插入数据,uid 844438318559607 tid 798 04/21 10:44:21.664140 00042352 TDB 错误 vgId:3 由于表 ID 无效而无法插入数据
服务器端好像出了点问题。我可以知道是否有人可以帮忙吗?
谢谢,
解决方法
-
从 JMeter 的角度来看,我只能推荐:
- 关注JMeter Best Practices
- saving request/response data 用于调查问题的时间范围,以便您确信 JMeter 不会未能正确构建请求
- 确保在可用 CPU/RAM 等方面有足够的空间供 JMeter 运行。
-
从 TDengine 的角度来看,仅上述关于资源监控的点适用,请确保 CPU、RAM、网络或磁盘 IO 使用率过高。可以使用即 JMeter PerfMon Plugin
除了检查日志中的可疑条目外,您还可以使用
show dnodes;
show mnode;
和show vgroups
等命令检查集群状态并查找 open issues
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。