InnoDB global status

本文详细介绍了MySQL Innodb的关键参数,如Innodb_buffer_pool_pages_free、Innodb_buffer_pool_wait_free、innodb_io_capacity等,并提供了针对不同硬件配置的参数设置建议。

常见参数

Innodb_buffer_pool_pages_free

 发现 Innodb_buffer_pool_pages_free 为0 ,则说明buffer_pool 已经被用光,需要增大 innodb_buffer_pool_size

Innodb_buffer_pool_wait_free

写入Innodb 缓冲池通常在后台运行,但有必要在没有干净的时候读取或创建页,有必要先等待页被刷新.

Innodb的IO 线程从数据文件中读取了数据要写入buffer_pool 的时候,需要等待空闲页的次数.单位是次

 innodb_io_capacity

在5.1.X 版本中,最多只会刷新100个脏页到磁盘,合并20个插入缓冲,即使磁盘有能力处理更多的请求,

只能会处理这么多,这样在更新量较大的时候,脏页刷新就可能跟不上,导致性能下降

5.5.X 版本里 innodb_io_capacity 参数可以动态调整刷新脏页的数量,这在一定程度上解决了这一问题:

innodb_io_capacity 默认值是 200 ,单位是页,该参数的设置大小取决于硬盘的IOPS,即每秒的读写次数

可以动态调整参数:set global innodb_io_capacity=2000;

磁盘配置与innodb_io_capacity 参数值

innodb_io_capacity 磁盘配置

200单盘SAS/SATA
2000SAS*12 RAID 10
5000  SSD
50000  FUSION_IO

 

 

 

innodb_io_capacity_max

innodb_io_capacity 和 innodb_io_capacity_max 这些设置会影响Innodb每秒在后台执行多少操作

大多数写IO (除了写Innodb日志)是后台操作的.如果你深度了解硬件性能(比如每秒可以执行多少次IO操作)

则使用这些功能是很可取的,而不是让它闲着.

有一个很简单的计算:如果每个磁盘每秒读写IOPS 可以达到200次,则拥有10个磁盘的RAID10 磁盘

阵列. IOPS理论上=(10/2)*200 =1000 是因为RAID 控制器通常能够提供额外的合并,并有效提高

IOPS能力.对于SSD磁盘,IOPS可以轻松达到好几千

将这两个值设置太大可能会存在某些风险,你肯定不希望后台操作妨碍了前台任务IO操作的性能,

过去的经验表明,将这两个值设置太高,innodb 持有的内部锁会导致性能降低(5.6得到了很大改进)

innodb_lru_scan_depth 默认值为1024 (mysql5.7是4000) 这是mysq5.6的新选项

提供一些配置建议,简单来说 如果增大了 innodb_io_capacity 值,应该同时增加 innodb_lru_scan_depth

sync_binlog

表示每次刷新binlog到磁盘的数目

Innodb_log_waits

Innodb_log_waits 状态变量,如果不是0,增加innodb_log_buffer_size

innodb_purge_threads=1

Innodb中的清除操作是一类定期回收无用数据的操作,在之前的几个版本中,清除操作是主线程的

一部分,这意味着运行时它可能会堵塞其他数据库操作

innodb_log_file_size

redo日志的大小,redo日志被用于确保写操作快速而可靠并且在崩溃时恢复.一直到MySQL5.1

它都难于调整,因为一方面你想让它更大的提高性能,另一方面你想让它更小来使得崩溃后更快恢复

辛运的是从MySQL5.5 以后,崩溃恢复的性能得到了很大提升,这样你就可以同时拥有较高的写入性能和崩溃

恢复性能了.一直到MySQL5.5。redo日志的总尺寸被限定在4GB (默认可以有2个log文件)在MySQL5.6里被提高

innodb_log_buffer_size

决定了为尚未执行的事务分配的缓存.默认值(1MB) 一般来说已经够用了,但是如果你的事务中包含

有二进制大对象或者大文本字段的话,这点缓存很快就会被填满并触发额外的 I/O操作

查看Innodb_log_waits 状态变量,如果不是0,增加innodb_log_buffer_size

 

 

转载于:https://www.cnblogs.com/yingdiblog/p/8400452.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值