Taosadapter http api方式读写, 高峰几个小时读会经常报超时错误.如果写改成原生写入,http api读不报错,但是原生写入速度慢很多,写不完

【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 核心数)。

restful方式读取. 配置文件里面没有搜到这两个参数, 应该是按默认的

没有设置如果是默认只0的话是cpu核心数. 那并发默认32有可能不够. 我可以改成500或者1000吗?

对,先放大到 1000 试试看。这个会控制放通给 taosd 的请求数。

好的,谢谢,明天我来汇

报效果. 高峰写入在凌晨0-8点时段

如果写入出现慢的话,注意排查一下 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,会不会出现瓶颈;

看图片 cpu和带宽都不是瓶颈(我把数据都积压了10分钟后再插入看到的效果,今晚高峰我再看下),我试试把写程序放另一个服务器看看是不是resful 方式写入和读取 i/o 之类引起的

这种情况下写入客户端已经显示 慢了吗? 如果是的,执行 top -Hp <taosd 进程号>
需要在出现慢的情况下执行,看看什么线程成为了瓶颈。

好的,凌晨高峰我看一下,不过top -Hp 命令貌似只能看cpu占用情况? 什么参数可以看瓶颈?

@TDuser_OEzS_1621 这个再看下后续吧