InnoDB global status
常见参数
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 |
2000 | SAS*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
InnoDB global status的更多相关文章
- Mysql命令show global status求根溯源
近来,发现好多公司对mysql的性能监控是通过show global status实现的,因此对于这个命令想要探究一番,看他是否是实时更新的. 在此之前,我们必须搞明白mysql对于这个命令的执行过程 ...
- Show Global Status 整理
原文来源:MySQL 5.5 Reference Manual 部分翻译取自:<MySQL_5.1中文参考手册> 转载请注明原文链接http://www.cnblogs.com/lenag ...
- mysql状态分析之show global status(转)
mysql> show global status;可以列出MySQL服务器运行各种状态值,我个人较喜欢的用法是show status like '查询值%';一.慢查询mysql> sh ...
- show global status和show variables mysql 优化
mysql> show global status; 可以列出MySQL服务器运行各种状态值,我个人较喜欢的用法是show status like '查询值%'; 一.慢查询 mysql> ...
- mysql状态分析之show global status
这里整理下mysql global status的相关命令,在计算监控数据的时候需要用到 一.慢查询 show variables like '%slow%'; +------------------ ...
- MySQL - Show Global Status 整理
2019独角兽企业重金招聘Python工程师标准>>> MySQL - Show Global Status 整理 原文来源:MySQL 5.5 Reference Manual 部 ...
- mysql的show status和show global status区别在哪
show status 本次会话的参数状态show global status 本次MYSQL服务开启(或重置)到现在总请求数
- InnoDB Monitors | SHOW ENGINE INNODB STATUS
参考 <mysql 5.7手册>,15.17章节 InnoDB监视器提供有关InnoDB内部状态的信息. 这些信息对于性能调优非常有用.其实所谓的监视器,就是 show engine in ...
- show engine innodb status\G
mysql> show engine innodb status\G *************************** 1. row *************************** ...
随机推荐
- 【记录】@Configuration注解作用 mybatis @Param作用
参考地址: 1:https://www.cnblogs.com/duanxz/p/7493276.html 2:https://www.wandouip.com/t5i91156/ 3:https:/ ...
- Ansible--03 ansible 变量
目录 Ansible 变量 变量概述 定义变量的方式 如何定义变量 Ansible变量优先级测试 变量注册 ansibl e层级定义变量 facts缓存 Ansible 变量 变量概述 变量提供了便捷 ...
- CSS 3D 的魅力
作者 | 子慕大诗人 来源 | www.cnblogs.com/1wen/p/9064011.html 前言: 最近玩了玩用css来构建3D效果,写了几个demo,所以博客总结一下. 在阅读 ...
- jquery 弹出框效果
html <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <ti ...
- sql格式化时间
sql格式化date类型 DATE_FORMAT(nuw(), '%Y-%m-%d') sql格式化long类型时间 FROM_UNIXTIME(time/1000,'%Y-%m-%d')
- 关于respond.js
作用:可以让ie8及以下支持css3的媒体查询. 有几个问题: 1.由于浏览器的安全机制,Respond.js 不能在通过 file:// 协议(打开本地HTML文件所用的协议)访问的页面上发挥正常的 ...
- Service系统服务(六):rsync基本用法、rsync+SSH同步、配置rsync服务端、访问rsync共享资源、使用inotifywait工具、配置Web镜像同步、配置并验证Split分离解析
一.rsync基本用法 目标: 本例要求掌握远程同步的基本操作,使用rsync命令完成下列任务: 1> 将目录 /boot 同步到目录 /todir 下 2> 将目录 /boot 下的 ...
- VC连接SQLite3的方法(MFC封装类)
SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,支持跨平台,操作简单,能够使用很多语言直接创建数据库.官方网站:www.sqlite.org 在VC环境下编写连接SQLite的 ...
- Python之-在字典、列表、集合中刷选数据
一.元组.字典.列表的遍历 1.元组遍历 元组的遍历借助 range() 函数,基本思想是通过元组的长度使用for循环进行遍历 #troup s = ["aaa","bb ...
- 自定义缓存管理器 或者 Spring -- cache
Spring Cache 缓存是实际工作中非常常用的一种提高性能的方法, 我们会在许多场景下来使用缓存. 本文通过一个简单的例子进行展开,通过对比我们原来的自定义缓存和 spring 的基于注释的 c ...