首页 > 系统相关 >TiKV占用内存超过的解决过程

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

时间:2023-08-15 23:34:17浏览次数:38  
标签:20160 占用 cache tikv 内存 TiKV block

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 如果日志没有落盘的话可能会出现问题
导致数据库宕机. 
建议至少要备份一下数据库.
注意需要先进行测试验证, 再修改. 

标签:20160,占用,cache,tikv,内存,TiKV,block
From: https://www.cnblogs.com/jinanxiaolaohu/p/17632720.html

相关文章

  • 优化 Redis 集群缓存分配:解决节点间分配不均导致内存溢出问题
    一、Redis集群部署简介在现代应用程序中,缓存被广泛应用以提高性能和减轻后端数据库的压力。本文将探讨面对Redis集群缓存分配不均问题时的解决方法。我们的Redis集群部署包括3主3从,每个节点分配内存4G(服务器总内存32G),内存淘汰策略相同:volatile-lru。二、问题描述在......
  • CUDA之矩阵转置(全局内存、共享内存)
    使用全局内存完整代码链接A合并访问、B非合并访问#ifdefUSE_DPtypedefdoublereal;#elsetypedeffloatreal;#endif__global__voidtranspose1(constreal*A,real*B,constintN){constintnx=blockIdx.x*blockDim.x+threadIdx.x;const......
  • dav 编译报错 v8内存溢出
    dav编译报错v8内存溢出FATALERROR:ReachedheaplimitAllocationfailed-JavaScriptheapoutofmemory  到node_modules中/.bin/roadhog.cmd把最后一句改成endLocal&goto#_undefined_#2>NUL||title%COMSPEC%&"%_prog%"--max_old_space_size=8192......
  • MemoryFile 共享内存原理分析
    Android上层提供了一些内存共享工具类,比如MemoryFile。你使用过吗?知道它的实现原理吗?MemoryFile是Java层对Ashmem的一个封装,下面来一起学习MemoryFile,掌握它的使用姿势和底层原理。MemoryFile使用方法大致如下:「进程A中申请一块共享内存写入数据,并准备好文件描述符:」Mem......
  • GBase 8s内存不足,扩充表空间
    数据库空间是一个逻辑概念,有多个称为Chunk的物理文件组成,用于存储表或索引的数据。不同的数据库空间可以使用不同的页大小,以便于进行存储性能优化。1.查询当前表空间大小切换到gbasedbt用户执行 onstat-d存储结构介绍(包括物理存储单元、逻辑存储单元、大对象存储)一个......
  • C/C++内存管理
    一、C/C++内存分布看下面这段代码:intglobalVar=1;staticintstaticGlobalVar=1;voidTest1(){ staticintstaticVar=1; intlocalVar=1; intnum1[10]={1,2,3,4}; charchar2[]="abcd"; constchar*pChar3="abcd"; int*ptr1=(int*......
  • C/C++内存管理
    一、C/C++内存分布看下面这段代码:intglobalVar=1;staticintstaticGlobalVar=1;voidTest1(){ staticintstaticVar=1; intlocalVar=1; intnum1[10]={1,2,3,4}; charchar2[]="abcd"; constchar*pChar3="abcd"; int*ptr1=(int*......
  • windows杀死占用端口的进程
    首先按住win+r键,输入cmd,然后按回车进入命令行窗口。1、根据端口号查询进程idnetstat-ano|findstr端口号这里使用的端口是8000,输出结果如下:TCP0.0.0.0:80000.0.0.0:0LISTENING10344结果的最后一列就是占用端口的进程号p_id,这里103......
  • InnoDB 内存结构
    目录InnoDB架构概念pagepagesizeInnoDB内存架构BufferPool缓冲池LRU算法缓冲池配置ChangeBuffer配置变更缓冲innodb_change_bufferinginnodb_change_buffer_max_sizechangeBuffer的适用场景自适应哈希索引LogBufferInnoDB磁盘架构表索引表空间双写缓冲区RedoLogUndoL......
  • 内存受限环境下求大文件Top N词频
    在大数据时代,处理超大规模数据是算法工程师需要面对的重要问题。本文将以在内存受限环境下,求一个大文件中词频最高的TopN词为例,探讨一种基于堆结构与外部排序的解决方案。问题描述给定一个1G大小的文件file.txt,里面每行是一个词,词的大小不超过16字节。内存限制为1M。要求返......