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不要互相影响了。