tikv_server 内存问题咨询

tikv_server节点 是不是没有内存 oom的问题 啊 ,生产环境,我想把tikv_server节点的内存 移点到tidb_server节点上

tidb_server节点的内存,为什么不用LRU算法,把旧的数据干掉,而不是OOM啊

OOM是操作系统行为。

tidb_server节点占用的内存,好像不会太高是吗

碰到BUG了会持续上涨,最终OOM。

肯定会有的。
这是我在另一个tikv oom 的帖子的回答(https://asktug.com/t/topic/1004326/8)

仅供参考:

tikv节点内存OOM,一般只有两个情况会出现:

  • tikv block cache设置太大
  • coprocessor 从tikv获取的数据缓存在tikv 内存中比较快,grpc 将读取到的数据发往tidb-server 的速度比较慢,从而导致数据堆积出现OOM

针对上面两个情况,可以检查下 tikv block cache参数是否合理。
如果上述参数合理,那就排查下此时集群的访问SQL,可以通过dashboard查看,或者登录机器在tidb-server中找到慢查询日志、以及在tidb.log 里grep 出 expensive query,大部分情况下都会找到对应的SQL

然后看看对应的SQL的执行计划,分析看是什么问题再找对应的处理策略

嗯,我这碰到的比较 少,全是tidb_server内存爆了

当你把tikv放到tidb-server上,因为tikv本身有cache的问题占用内存比较大,如果tidb-server语句导致内存占用变大,默认操作系统会杀掉占用内存最大的进程,就会把tikv杀掉。关键系统尽量把tidb-server和tikv分开放。

tikv_server节点 也是有内存 oom的风险的,生产环境,把tikv_server节点的内存 移点到tidb_server节点上,这样如果两者进程有oom,有可能导致tikv进程杀掉的,要知道tidb进程杀掉基本无所谓,tikv杀掉对业务影响比较大,肯定是分开更合理。实在想放一起,只能用numa绑定一下tidb和tikv不要互相影响了。