Galera集群server.cnf参数调整--Innodb存储引擎内存相关参数(一)
在innodb引擎中,内存的组成主要有三部分:缓冲池(buffer pool),重做日志缓存(redo log buffer),额外的内存池(additional memory pool)。
【参数1:innodb_buffer_pool_size】
主要用来缓存innodb表的索引、数据,是插入数据时的缓冲。
/*Innodb存储引擎的缓存机制和Myisam最大的区别就在于他不紧可以缓存索引,还会缓存实际的数据。所以相同的物理环境,Innodb对磁盘IO的优化会优于Myisam。*/
当系统上线后,我们可以通过Buffer Pool实时状态,来做进一步的分析:
从这里我们能看出Read命中的情况:
Read命中率=(Innodb_buffer_pool_read_requests-Innodb_buffer_pool_reads)/Innodb_buffer_pool_read_requests
配图是默认的情况,根据公式就是(该db很空闲,但参考机器性能,及mysql手册推荐值,仍可对该参数进行调整。)
Innodb_buffer_pool_reads的数值统计是通过物理读来获取的数据。
Innodb_buffer_pool_pages_free这个数值需要关注,空闲页的大小。
Innodb_buffer_pool_pages_flushed刷新页请求数量。
Innodb_buffer_pool_read_ahead预读入缓存的页数量。
Innodb_buffer_pool_wait_free等待空闲页的次数(关注)。
/*当用户需要读取一个页面,或者请求分配一个新页面进行插入,需要调用buf0flu.cc工程中的buf_LRU_get_free_block函数进行页面的分配。
首先尝试从buffer pool中的free list分配新页面,若free list中没有空闲页,同时当前系统正在进行flush,等待flush结束后进行分配;若free list中没有空闲页,不在flush,遍历LRU链表,寻找非脏页面置换到free list,然后刷新Innodb引擎统计,实现pages的释放。*/
innodb_buffer_pool_size
Innodb_buffer_pool_size默认为128M,若该物理机为mysql服务器,若使用的引擎只有innodb,可以考虑配置为物理内存的50%-70%。
在mysql的conf中进行修改
# vim /etc/my.cnf.d/server.cnf
innodb_buffer_pool_size=80G
这个值如果调整过大,带来的IO性能上的优化将不会很明显,反而会造成cpu的压力过高。
【参数2:Innodb_buffer_pool_instances】
Innodb_buffer_pool_instances将Innodb_buffer_pool划分到不同的instance中,每个instance独立进行LRU Flush,有独立的mutex控制会避免内存锁的争用(大的并发状态下优化效果明显)。
/*注:与Innodb_buffer_pool_size参数相结合,每个instance的size确保不小于1G。一般设置也参考cpu个数(小于或等于cpu个数即可)。*/
【参数3:Innodb_additional_mem_pool_size】
这个参数用来设置Innodb存储的数据的目录信息和其他内部数据结构的内存池。
/*一般来讲,应用程序常用的业务表越多,这里配的内存就应该越大,对于稳定的程序,这个参数的大小是稳定的,可以关注错误日志来进行调整。从mysql 5.6.3开始,不再需要这个参数了。
(错误日志[Warning] option 'innodb_additional_mem_pool_size': signed value 512000 adjusted to 524288)。*/
在示例中走的是默认配置,默认配置是8M。
Mysql手册中对于2G内存时推荐设置为20M。一般,设置过大会造成物理内存浪费,可以在上线一段时间内密切关注日志,进行参数调整。
在db中进行调整,调整为20M。
Galera集群server.cnf参数调整--Innodb存储引擎内存相关参数(一)的更多相关文章
- Galera集群server.cnf参数调整--前言
文档安排: 前言部分会简述下galera集群,正文中会针对我们线上的环境,在不断业务的情况下,进行参数调整的话,有些参数不能够进行配置,会以#***的形式写入配置文件中,文档也会进行进一步说明. 如果 ...
- mysql innodb存储引擎和一些参数优化
mysql 的innodb存储引擎是事务性引擎,支持acid.innodb支持版本控制和高并发的技术是svcc:需要重点注意:myisam只缓存索引,innodb缓存索引和数据:
- InnoDB存储引擎内存缓冲池管理技术——LRU List、Free List、Flush List
InnoDB是事务安全的MySQL存储引擎,野山谷OLTP应用中核心表的首选存储引擎.他是基于表的存储引擎,而不是基于数据库的.其特点是行锁设计.支持MVCC.支持外键.提供一致性非锁定读,同时被设计 ...
- 《MySQL技术内幕:InnoDB存储引擎(第2版)》书摘
MySQL技术内幕:InnoDB存储引擎(第2版) 姜承尧 第1章 MySQL体系结构和存储引擎 >> 在上述例子中使用了mysqld_safe命令来启动数据库,当然启动MySQL实例的方 ...
- Mysql技术内幕——InnoDB存储引擎
Mysql技术内幕——InnoDB存储引擎 http://jingyan.baidu.com/article/fedf07377c493f35ac89770c.html 一.mysql体系结构和存储引 ...
- MySQL InnoDB 存储引擎探秘
在MySQL中InnoDB属于存储引擎层,并以插件的形式集成在数据库中.从MySQL5.5.8开始,InnoDB成为其默认的存储引擎.InnoDB存储引擎支持事务.其设计目标主要是面向OLTP的应用, ...
- 《MySQL技术内幕:InnoDB存储引擎》读书笔记
一.Mysql体系结构和存储引擎 1. 概念: 数据库:物理操作系统文件或其他形式文件类型的集合.(是文件的集合,是依照某种数据模型组织起来并存放于二级存储器中的数据集合.) ...
- 【3.4】innodb存储引擎
[1]Innodb 与 Myisam 的区别 1.InnoDB支持事物,而MyISAM不支持事物 2.InnoDB支持行级锁,而MyISAM支持表级锁 3.InnoDB支持MVCC, 而MyISAM不 ...
- 0728MySQL数据库InnoDB存储引擎重做日志漫游REDOLOG,UNDOLOG
转自http://www.mysqlops.com/2012/04/06/innodb-log1.html 00 – Undo LogUndo Log 是为了实现事务的原子性,在MySQL数据库Inn ...
随机推荐
- jQ中对attr()方法的理解
在JS中设置节点的属性与属性值用到setAttribute(),获得节点的属性与属性值用到getAttribute(),而在jquery中,用一个attr()就可以全部搞定了,赞一个先 ^^jquer ...
- sql的各种join连接
SELECT * FROM TableA INNER JOIN TableB ON TableA.name = TableB.name id name id name -- ---- -- ---- ...
- js_保留关键字
网页可以被我们分为三个大的部分:结构,表现,形式而js就是专对于表现的,js是一门编程的解释性脚本语言,和其他的语言相同js也有自己的保留的关键字,下面我们来看看js保留的关键字吧!js一共有56个关 ...
- Windows下nodejs 模块配置 全局模式与本地模式的区别
第1步:下载.安装文件 (nodejs的官网http://www.nodejs.org/download/ ) 第2步:安装相关模块环境 打开C:\Program Files\nodejs 目录你会发 ...
- PAT算法题学习笔记
1001. 害死人不偿命的(3n+1)猜想 (15) 卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把(3n+1)砍掉一半.这样一直反复砍下去, ...
- yum安装nginx
1.在/etc/yum.repos.d/目录下创建一个源配置文件ngxin.repo: cd /etc/yum.repos.d/ vim nginx.repo 填写如下内容: [nginx] name ...
- 微信touchmove不生效
最近在写一个微信里面滑动切换图片的功能,发现在chrome下都正常显示,可是在微信和qq浏览器里面就是不行. 经过一番排查,发现了问题: touchmove只触发了一次. 解决方案: 在touchst ...
- 物联网应用中实时定位与轨迹回放的解决方案 – Redis的典型运用(转载)
物联网应用中实时定位与轨迹回放的解决方案 – Redis的典型运用(转载) 2015年11月14日| by: nbboy| Category: 系统设计, 缓存设计, 高性能系统 摘要 ...
- Stl源码剖析 第三章 iterator摘要
1. Stl的设计思想是: 将数据容器和算法分开,彼此独立设计,最后再以一贴胶合剂将它们撮合在一起,这个胶合剂就是迭代器. 2. 从3.2节迭代器的实现可知,如果要设计一个与容器分离实现的迭代器,会暴 ...
- 淘宝网触屏版 - 学习笔记(1 - 关于meta)
注:本文是学习笔记,并不是教程,所以会有很多我不理解或猜测的问题,也会有不尽详实之处,望见谅. <meta charset="utf-8"> <meta cont ...