TiKV占用内存超过的解决过程

tikv,占用,内存,超过,解决,过程 · 浏览次数 : 55

小编点评

## 解决 TiKV内存过载问题 **背景:** 为了应对 TiDB 的极限数据,使用多个 TiKV 的节点来提升性能。由于 TiKV 使用缓存,每个服务器需要配置多个 block cache,导致内存压力增加。 **解决方案 1:修改配置文件** 1. 使用 `tiup cluster edit-config erptidb` 命令添加以下配置: ``` server_configs: tidb: enforce-mpp: true mem-quota-query: 64294967296 ``` **解决方案 2:执行部分处理** 1. 在测试环境中,执行以下命令: ``` tiup cluster reload erptidb -N someip:201603 ``` **注意事项:** * 此方法可能需要一些时间才能完成。 * 不要在生产环境中使用该方法。 * 建议先进行测试验证,再修改配置文件。 * 请确保备份数据库。

正文

TiKV占用内存超过的解决过程


背景

为了后去TiDB的极限数据.
晚上在每台服务器上面增加了多个TiKV的节点. 
主要方式为:
每个NVME的硬盘增加两个TiKV的进程. 
这样每个服务器两个磁盘, 共计4个TiKV的进程

因为TiKV其实会使用尽可能多的缓存:

storage.block-cache 表示RocksDB 多个 CF 之间共享 block cache 的配置选项。
当开启时,为每个 CF 单独配置的 block cache 将无效。
shared
是否开启共享 block cache。
默认值:true

capacity
共享 block cache 的大小。
默认值:系统总内存大小的 45%
单位:KB|MB|GB

问题现象

因为这种情况下: 
我一个机器四个TiKV甚至还要多. 导致 block cache里面的内容其实可能大于总体内存.
直接导致内存爆满, CPU也爆高,机器宕机. 
现象为:

image


解决方案

1. 修改配置文件:
tiup cluster edit-config erptidb 
在tikv 下面增加配置主要为:
server_configs:
  tidb:
    enforce-mpp: true
    mem-quota-query: 64294967296
  tikv:
    storage.block-cache.capacity: 32G

注意这个内存可以进行一下自己的计算和选择

2. 执行部分处理
tiup cluster reload erptidb -N someip:20160

3. 注意tikv的重启非常慢. 可能会有问题. 建议如果是测试环境时
执行 第二步里的设置之后就会出现reconfig了. 
然后可以看看tidb的安装目录下面的 tikv-20160/config 下面的toml 文件
就会看到配置被分发了
然后可以执行 systemctl restart tikv-20160
注意如果自己的tikv比较多. 端口不一样, 服务可能也是不一样的, 需要单独重启. 

注意事项

其实不建议这样处理
重启tikv 如果日志没有落盘的话可能会出现问题
导致数据库宕机. 
建议至少要备份一下数据库.
注意需要先进行测试验证, 再修改. 

与TiKV占用内存超过的解决过程相似的内容:

TiKV占用内存超过的解决过程

# TiKV占用内存超过的解决过程 ## 背景 ``` 为了后去TiDB的极限数据. 晚上在每台服务器上面增加了多个TiKV的节点. 主要方式为: 每个NVME的硬盘增加两个TiKV的进程. 这样每个服务器两个磁盘, 共计4个TiKV的进程 因为TiKV其实会使用尽可能多的缓存: storage.b

[转帖]7.5 TiKV 磁盘空间占用与回收常见问题

https://book.tidb.io/session4/chapter7/compact.html TiKV 作为 TiDB 的存储节点,用户通过 SQL 导入或更改的所有数据都存储在 TiKV。这里整理了一些关于 TiKV 空间占用的常见问题 TiKV 的空间放大 监控上显示的 Number

TiKV 源码分析之 PointGet

作者:来自 vivo 互联网存储研发团队-Guo Xiang 本文介绍了TiDB中最基本的PointGet算子在存储层TiKV中的执行流程。 一、背景介绍 TiDB是一款具有HTAP能力(同时支持在线事务处理与在线分析处理 )的融合型分布式数据库产品,具备水平扩容或者缩容等重要特性。TiDB 采用多

[转帖]TiKV & TiDB相关笔记

https://www.jianshu.com/p/1141be233bb2 一、TiKV存储 简述 通过单机的 RocksDB,TiKV 可以将数据快速地存储在磁盘上;通过 Raft,将数据复制到多台机器上,以防单机失效。数据的写入是通过 Raft 这一层的接口写入,而不是直接写 RocksDB。

[转帖]TiKV集群搭建

https://www.cnblogs.com/luohaixian/p/15227788.html 1.准备环境 准备4台ubuntu 16.04虚拟机 部署规划: 节点类型 CPU 内存 存储 部署数量 所在节点IP TiKV 8 core 8 GB 200GB 3 10.10.10.2 10.

[转帖]TiKV读写流程浅析

https://www.cnblogs.com/luohaixian/p/15227838.html 1.TiKV框架图和模块说明 图1 TiKV整体架构图 1.1.各模块说明 PD Cluster:它是由多个PD节点组成的etcd集群,PD是具有“上帝视角”的管理组件,负责存储元数据和进行负载均衡

[转帖]5. Tikv安装部署

5. Tikv安装部署 5.1. 概述 TiDB 是 PingCAP 公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP) 的融合型分布式数据库产品,具备

[转帖]TiKV 内存参数性能调优

https://docs.pingcap.com/zh/tidb/stable/tune-tikv-memory-performance 本文档用于描述如何根据机器配置情况来调整 TiKV 的参数,使 TiKV 的性能达到最优。你可以在 etc/config-template.toml 找到配置文件

[转帖]TiKV 缩容不掉如何解决?

https://tidb.net/book/tidb-monthly/2022/2022-04/usercase/tikv TiKV节点缩容不掉,通常遇到的情况: 1、经常遇到的情况是:3个节点的tikv集群缩容肯定会一直卡着,因为没有新节点接受要下线kv的region peer。 2、另外就是除缩

[转帖]TiKV Control 使用说明

https://docs.pingcap.com/zh/tidb/stable/tikv-control TiKV Control(以下简称 tikv-ctl)是 TiKV 的命令行工具,用于管理 TiKV 集群。它的安装目录如下: 如果是使用 TiUP 部署的集群,在 ~/.tiup/compon