当前位置:首页 > 后端开发 > 正文内容

MySQL数据库写入反常,主库内存溢出,扩容+整理buff/cach!很开门

邻居的猫1个月前 (12-09)后端开发1767

MySQL数据库写入反常,主库内存溢出,扩容+整理buff/cach!很开门

最近数据呈现了两次写入反常报错如下:org.springframework,jdbc.UncategorizedsQlException: PreparedstatementCallback; uncategzed 50LExcention [sql句子] The MysOl server is running with the --read-only option so it cannot execute this......

榜首次不知道是什么原因,DM咔咔一段操作后就好了。第2次反应是主数据库内存溢出,导致的写入反常。项目生产上的事务一切写入都无法操作,大约继续10多分钟,DM帮助处理,可是扩容需求找领导请求,DM先帮助整理了buff/cache的东西,释放了18G。其实从字面上看buff/cache便是读、写的缓存。毛病是其他搭档在处理的,写此文章仅仅学习了解下buff/cache


登录到数据库布置的机器上

```Java
free    以KB为单位显现
free -h 以GB为单位显现 

榜首列
Mem 内存的运用信息
Swap 交流空间的运用信息
榜首行
total 体系总的可用物理内存巨细
used 已被运用的物理内存巨细
free 还有多少物理内存可用
shared 被同享运用的物理内存巨细
buff/cache 被 buffer 和 cache 运用的物理内存巨细
available 还能够被 *应用程序* 运用的物理内存巨细

free是真实尚未被运用的物理内存巨细,available是体系使命应用程序可用的物理内存巨细

buff/caahe

buff:针对磁盘写操作的优化,当数据抵达时,不会当即写入磁盘,而是先写入buff缓冲区,当到达写入磁盘的条件时再一致写入磁盘。

cache:针磁盘读操作的优化,当读取数据时,不会当即从磁盘上读,而是先从cache找,在cache中,直接回来数据,cache中没有再从磁盘读数据,削减与磁盘的交互,进步功能。

mysql内部的缓冲池机制

InnoDB 存储引擎办理自己的缓存机制,称为 缓冲池。用于缓存表数据、索引页、刺进缓冲等内容。缓冲池巨细经过参数 innodb_buffer_pool_size装备,过小会依靠操作体系的 buff/cache。当 MySQL 和操作体系都需求内存时,内存或许会成为瓶颈。假如 MySQL 装备了较大的缓冲池(innodb_buffer_pool_size),操作体系的 buff/cache 或许削减;反之亦然。

下面这段话摘自mysql8.4-缓冲池-官方文档

缓冲池是主内存中的一个区域,用于 InnoDB缓存拜访的表和索引数据。缓冲池答应直接从内存拜访常用数据,然后加速处理速度。在专用服务器上,一般最多有 80% 的物理内存分配给缓冲池。
为了进步大容量读取操作的功率,缓冲池被划分为可包容多行的页面。为了进步缓存办理的功率,缓冲池被实现为页面的链接列表;运用最近最少运用 (LRU) 算法的变体将很少运用的数据从缓存中筛选。
知道怎么使用缓冲池将常常拜访的数据保存在内存中是 MySQL 调优的一个重要方面。

附上mysql8.4版别的开发文档网址:https://dev.mysql.com/doc/

Buffer Pool 直接对应 MySQL 内部的 buff,这是 InnoDB 引擎用来缓存数据页和索引页的内存区域。

Operating System Cache 对应操作体系层面的 cache,这是操作体系为文件 I/O 供给的缓存机制,但在 InnoDB 中经过O_DIRECT 绕过操作体系缓存以优化功能。

扫描二维码推送至手机访问。

版权声明:本文由51Blog发布,如需转载请注明出处。

本文链接:https://www.51blog.vip/?id=168

标签: java SE
分享给朋友:

“MySQL数据库写入反常,主库内存溢出,扩容+整理buff/cach!很开门” 的相关文章

根据 Go + Vue3!一款开源的 Nginx 办理 Web 东西!

根据 Go + Vue3!一款开源的 Nginx 办理 Web 东西!

我们好,我是 Java陈序员。 Nginx 因为其强壮的功用,常常被用于企业开发中! 今日,给我们介绍一款开源的 Nginx 办理 Web 东西,支撑经过界面完结 Nginx 的装备! 重视微信大众号:【Java陈序员】,获取开源项目共享、AI副业共享、超200本经典计算机电子书籍等。 项目介绍...

Kraft形式下Kafka脚本的运用

Kraft形式下Kafka脚本的运用

Kafka集群 版别:V3.5.1 称号 Node1 Node2 Node3 IP 172.29.145.157 172.29.145.182 172.29.145.183 (1)检查Kraft集群中的状况以及Leader节点,投票节点 运用--status能够检查集群推举次数/水位线以及投票节点等...

Flutter/Dart第19天:Dart高档特性之扩展办法(Extension methods)

Flutter/Dart第19天:Dart高档特性之扩展办法(Extension methods)

Dart官方文档:https://dart.dev/language/extension-methods 重要说明:本博客依据Dart官网文档,但并不是简略的对官网进行翻译,在掩盖中心功用情况下,我会依据个人研制经历,参加自己的一些扩展问题和场景验证。 扩展办法概述 当咱们运用了一些被广泛运用的其他...

r语言常用函数,R语言常用函数详解

r语言常用函数,R语言常用函数详解

1. 基本数学运算函数: `sum`: 计算向量、矩阵或数据框中所有元素的总和。 `mean`: 计算向量、矩阵或数据框中所有元素的平均值。 `median`: 计算向量、矩阵或数据框中所有元素的中位数。 `sd`: 计算向量、矩阵或数据框中所有元素的样本标准差。 `v...

java和python,编程语言的选择与未来展望

1. 用途: Java:通常用于企业级应用、Android 应用开发、大型系统开发等。 Python:广泛用于数据分析、机器学习、Web 开发、自动化脚本等。2. 语法: Java:语法相对严格,需要明确声明变量类型,并且使用分号作为语句的结束符。 Python:语法简洁明了...

go-live,什么是Go-Live?

go-live,什么是Go-Live?

“Go live”通常有几种不同的含义,具体取n2. 活动或项目启动:在某些情况下,“go live”也用于描述一个活动或项目的正式启动。例如,一个公司可能会宣布某个新服务或产品“go live”,意味着该服务或产品开始正式提供。3. 实时互动或直播:在娱乐或活动策划领域,“go live”可以指...