【TDengine 使用环境】
生产环境 /测试/ Poc/预生产环境
【TDengine 版本】3.3.6.0
【操作系统以及版本】 linux centos 7
【部署方式】容器/非容器部署 非容器部署
【集群节点数】1
【集群副本数】
【描述业务影响】 经常读报错,读取速度慢
【问题复现路径/shan】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】
【报错完整截图】(不要大段的粘贴报错代码,论坛直接看报错代码不直观)
【TDengine 使用环境】
生产环境 /测试/ Poc/预生产环境
【TDengine 版本】3.3.6.0
【操作系统以及版本】 linux centos 7
【部署方式】容器/非容器部署 非容器部署
【集群节点数】1
【集群副本数】
【描述业务影响】 经常读报错,读取速度慢
【问题复现路径/shan】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】
【报错完整截图】(不要大段的粘贴报错代码,论坛直接看报错代码不直观)
需要看一下发生问题时, 服务端 taosd 、taosadapter 的系统资源占用情况。看看哪里是瓶颈。
使用 restful 方式,还是 websocket 方式呢?在taosadapter的配置文件中,有两个控制并发的参数是否适配高峰的场景:
maxAsyncConcurrentLimit 设置 C 异步方法的最大并发调用数(0 表示使用 CPU 核心数)。
maxSyncConcurrentLimit 设置 C 同步方法的最大并发调用数(0 表示使用 CPU 核心数)。
没有设置如果是默认只0的话是cpu核心数. 那并发默认32有可能不够. 我可以改成500或者1000吗?
对,先放大到 1000 试试看。这个会控制放通给 taosd 的请求数。
如果写入出现慢的话,注意排查一下 taosd 服务的情况:
1、top -Hp <taosd 进程号> 看看有没有写入相关线程出现瓶颈;
2、iostat -dmx 2 观察一会儿 磁盘 IO,会不会出现瓶颈;
3、show create database <数据库名称>; 查看一下 buffer 参数是多大,太小的话,会引起频繁落盘,也会出现瓶颈。
写入用原生的比较慢, 用resful api 接口写入不慢. 两个主要的写入库 buffer 都是480
CREATE DATABASE DBCommon VGROUPS 9 KEEP 7300 DURATION 30 BUFFER 480
cachesize 256 PAGES 26214 CACHEMODEL ‘both’ WAL_LEVEL 2 WAL_FSYNC_PERIOD 10000
PRECISION ‘ms’ ;
CREATE DATABASE DBCommonStatis VGROUPS 3 KEEP 7300 DURATION 30 BUFFER 480
cachesize 256 PAGES 26214 CACHEMODEL ‘both’ WAL_LEVEL 2 WAL_FSYNC_PERIOD 10000
PRECISION ‘ms’ ;
那先看看明天的效果吧。
调了两个参数值(maxAsyncConcurrentLimit maxSyncConcurrentLimit)为1000后,基本没有什么效果,报错量差不多, 我单独把写程序放到另一个服务器再观察下看看. 然后用以下你说的命令观察下 cpu和磁盘情况
1、top -Hp <taosd 进程号> 看看有没有写入相关线程出现瓶颈;
2、iostat -dmx 2 观察一会儿 磁盘 IO,会不会出现瓶颈;
这种情况下写入客户端已经显示 慢了吗? 如果是的,执行 top -Hp <taosd 进程号>
需要在出现慢的情况下执行,看看什么线程成为了瓶颈。
@TDuser_OEzS_1621 这个再看下后续吧