tidb UnifyReadPool的作用和功能

nifyReadPool 线程池:由 Coprocessor 线程池与 Storage Read Pool 合并而来 4.0 版本 storage 和 coprocessor 线程池。所有的读取请求包括 kv get、kv batch get、raw kv get、coprocessor 等都会在这个线程池中执行。

他的相关参数有哪些:

mysql> show config where name like '%unified%';
+------+--------------------+---------------------------------------+-------+
| Type | Instance           | Name                                  | Value |
+------+--------------------+---------------------------------------+-------+
| tikv | 172.16.6.194:20160 | readpool.coprocessor.use-unified-pool | true  |
| tikv | 172.16.6.194:20160 | readpool.storage.use-unified-pool     | true  |
| tikv | 172.16.6.194:20160 | readpool.unified.max-tasks-per-worker | 2000  |
| tikv | 172.16.6.194:20160 | readpool.unified.max-thread-count     | 6     |
| tikv | 172.16.6.194:20160 | readpool.unified.min-thread-count     | 1     |
| tikv | 172.16.6.194:20160 | readpool.unified.stack-size           | 10MiB |

stack-size
统一处理读请求的线程池中线程的栈大小。
类型:整数 + 单位
默认值:10MB
单位:KB|MB|GB
最小值:2MB
最大值:在系统中执行 ulimit -sH 命令后,输出的千字节数。

min-thread-count
统一处理读请求的线程池最少的线程数量。
默认值:1
max-thread-count
统一处理读请求的线程池最多的线程数量,即 UnifyReadPool 线程池的大小。调整该线程池的大小时,请参考 TiKV 线程池调优。
默认值:CPU * 0.8,但最少为 4

在这里插入图片描述
图片中所有的读请求都会经过UnifyReadPool,注意是读请求不包括写请求,UnifyReadPool中分为 l0,l1,l2 l0的优先级最高优先将资源给l0依次类推,如果读请求在l0中迟迟执行不完,就会调入到l1中再执行不玩的话就会调入到l2中,这样的话点查询执行快占用l0的时间很短,全表扫描的慢sql最后会刷到l2中。

unifyReadPool 常见问题:
如果读请求慢且unified read pool使用率高的话需要调整max-thread-count 参数。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值