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也爆高,机器宕机.
现象为:


解决方案

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占用内存超过的解决过程的更多相关文章

  1. 记一次java内存溢出的解决过程

    注:本文主要记录这次解决内存溢出问题的过程而不是具体问题. 最近在写一个搜索引擎,使用倒排索引结构进行文档检索,保存索引的基本思想是先将倒排列表保存到内存中一个有序Map里(TreeMap),然后当内 ...

  2. w3wp.exe进程占用内存过高解决方法

    解决CPU占用过多: 1.在IIS中对每个网站进行单独的应用程序池配置.即互相之间不影响. 2.设置应用程序池的CPU监视,不超过25%(服务器为4CPU),每分钟刷新,超过限制时关闭. 根据w3wp ...

  3. SQL Server 2008 R2占用内存越来越大解决方法

    最近开发sql server数据库项目的过程中发现了这么一个问题,后台网站内存占用95%,通过任务管理器查看占内存的进程sqlserver.exe,是因为SQL Server 2008 R2运行越久, ...

  4. C# Winform应用程序占用内存较大解决方法整理(转)

    原文:http://www.jb51.net/article/56682.htm 背景: 微软的 .NET FRAMEWORK 现在可谓如火如荼了.但是,.NET 一直所为人诟病的就是“胃口太大”,狂 ...

  5. (转)C# Winform应用程序占用内存较大解决方法整理

    背景: 微软的 .NET FRAMEWORK 现在可谓如火如荼了.但是,.NET 一直所为人诟病的就是“胃口太大”,狂吃内存,虽然微软声称 GC 的功能和智能化都很高,但是内存的回收问题,一直存在困扰 ...

  6. 添加IFrame导致内存溢出的解决过程(IE浏览器,目前发现了原因,还未解决)

    1.  现象 每次动态添加iframe时,iexplore.exe进程占据的内存都会增加(大概10M左右),不会自动释放,最终导致内存溢出 2.  解决过程 经过网络的一番搜索,基本上给出的解决方案是 ...

  7. C# Winform应用程序占用内存较大解决方法整理

     微软的 .NET FRAMEWORK 现在可谓如火如荼了.但是,.NET 一直所为人诟病的就是“胃口太大”,狂吃内存,虽然微软声称 GC 的功能和智能化都很高,但是内存的回收问题,一直存在困扰,尤其 ...

  8. Oracle占用内存过高解决办法

    1.cmd sqlplus system账户登录 2.show parameter sga; --显示内存分配情况 3.alter system set sga_max_size=200m scope ...

  9. Jenkins占用内存较大解决办法

    主机启动jenkins后导致内存占用较大 登录主机top按键M按消耗内存排序 未调优前查看进程 修改配置文件 /usr/local/jenkins-tomcat/bin/catalina.sh 增加一 ...

  10. 使用SpringCloud实现的微服务软件开发部署到Linux上占用内存过大问题解决办法

    问题描述 最近上线的一个使用JAVA的Spring Cloud开发的ERP软件,部署上线时发现很严重的内存资源占用过高问题,而实际上开发测试并没有很大的访问量,甚至却出现了服务器无法正常访问的现象. ...

随机推荐

  1. 使用WPF开发自定义用户控件,以及实现相关自定义事件的处理

    在前面随笔<使用Winform开发自定义用户控件,以及实现相关自定义事件的处理>中介绍了Winform用户自定义控件的处理,对于Winform自定义的用户控件来说,它的呈现方式主要就是基于 ...

  2. 斯坦福 UE4 C++ ActionRoguelike游戏实例教程 02.AI自定义任务和观察器中断

    斯坦福课程 UE4 C++ ActionRoguelike游戏实例教程 0.绪论 概述 本文章对应课程第十一章 42节.这篇文章会进一步地为AI添加新功能,创建自定义任务,允许AI发射子弹,并且讲解观 ...

  3. 这一次,弄明白JS中的文件相关(一):概念篇

    概念是学习的基础.在学习JS中的文件操作之前,先把文件相关的各种概念搞清楚,很有好处. 1. 二进制: 计算机硬件仅能处理和存储二进制数据,所以不管是你正在写的代码,还是你硬盘里的小姐姐,都是以二进制 ...

  4. QT OpenGLWidget高分屏适配时出现的问题

    参考官方文档,为了解决4K屏幕显示QT界面时出现窗口变小分辨率不匹配的问题,我们可以在 QApplication a(argc, argv); 这句之前添加: #if (QT_VERSION > ...

  5. [Python急救站]含义GUI的学生管理系统

    这个管理系统是含有GUI界面的学生管理系统,比较方便. import tkinter as tk class Student: def __init__(self, name, student_id, ...

  6. Boost程序库完全开发指南:1.1-C++基础知识点梳理

      主要整理了N多年前(2010年)学习C++的时候开始总结的知识点,好长时间不写C++代码了,现在LLM量化和推理需要重新学习C++编程,看来出来混迟早要还的. 1.shared_ptr 解析:sh ...

  7. 实例讲解将Graph Explorer搬上JupyterLab

    摘要:基于 Graph Explorer 在 Jupyter 上进行图探索,可以大大降低编码成本,丰富 JupyterLab 的数据表现力. 本文分享自华为云社区<将 Graph Explore ...

  8. 论文解读丨LayoutLM: 面向文档理解的文本与版面预训练

    摘要:LayoutLM模型利用大规模无标注文档数据集进行文本与版面的联合预训练,在多个下游的文档理解任务上取得了领先的结果. 本文分享自华为云社区<论文解读系列二十五:LayoutLM: 面向文 ...

  9. Hive 报错 FAILED: SemanticException [Error 10096]: Dynamic partition strict mode requires at least one static partition column. To turn this off set hive.exec.dynamic.partition.mode=nonstrict —————

    hive中设置 set hive.exec.dynamici.partition=true; set hive.exec.dynamic.partition.mode=nonstrict;

  10. 深挖 Rundll32.exe 的多种“滥用方式”以及其“独特”之处

    恶意软件作者通常会编写恶意软件模仿合法的Windows进程.因此,我们可能会看到恶意软件伪装成svchost.exe.rundll32.exe或lsass.exe进程,攻击者利用的就是大多数Windo ...