并行update表数据一共50w,报错### Cause: java.sql.SQLException: Unknown resource group ‘default’
; uncategorized SQLException for SQL ; SQL state [HY000]; error code [8249]; Unknown resource group ‘default’; nested exception is java.sql.SQLException: Unknown resource group ‘default’。期间集群也断了
页面报错
看看pd日志,在tiup cluster display看看集群日志
是不是有节点oom重启了??
嗯嗯对,重启了
修改下kv的参数:storage.block-cache.capacity 其他的先不动
storage.block-cache.capacity这个参数,经验值一般设成多少?
memory-usage-limit
- TiKV 实例的内存使用限制。当 TiKV 的内存使用量接近此阈值时,内部缓存会被清除以释放内存。
- 在大多数情况下,TiKV 实例被设置为占系统可用总内存的 75%,因此你不需要显式指定此配置项。剩余 25% 的内存用于操作系统的页缓存,详情参见
storage.block-cache.capacity
。 - 在单个物理机上部署多个 TiKV 节点时,你也不需要设置此配置项。在这种情况下,TiKV 实例使用
5/3 * block-cache.capacity
的内存。 - 不同系统内存容量的默认值如下:
- system=8G block-cache=3.6G memory-usage-limit=6G page-cache=2G
- system=16G block-cache=7.2G memory-usage-limit=12G page-cache=4G
- system=32G block-cache=14.4G memory-usage-limit=24G page-cache=8G
看参考指南-配置文件参数-tikv参数 最后有样例,然后再有oom,我建议可以1-2个g,逐渐下调。同时处理慢sql
独立部署不用设置,混合部署,按你希望tikv占用的内存一半设置就好
会超点,有台服务器40,memory-usage-limit%=24 storage.block-cache.capacity=24/5*3=14
实际占用28.5 ,使用率是78%
学习下。报错了重新之后集群能恢复正常吗?
好的,感谢指点。
我的Tidb数据库,现在没有跑大的业务,后续可能会用来做数据仓库。之前也没有管这个参数的值。
控制一下sql的内存使用,或者调优试试
看报错感觉是pd都出问题了。没法提供服务了。
也可以考虑限制单条SQL的内存使用(tidb_mem_quota_query),以及优化这个SQL语句
我司一般搞1G,64G的机器。个别业务要执行个大sql就临时改成10G。
业务真正跑几乎不会突破1G的上限,但是100M经常会被拦截。
ctx canceled,自己断开了把
限制一下SQL的内存使用大小
还得看一台机器上有几个tikv实例,别把OS的内存用光了
厉害,没怎么关注过该参数