Buffer Pool Adaptive Flush 在MySQL的帮助文档中Tuning InnoDB Buffer Pool
Flushing提到, innodb_adaptive_flushing_lwm,innodb_max_dirty_pages_pct_lwm, innodb_io_capacity_max,
和innodb_flushing_avg_loops. 公式决定了Adaptive
Flush刷入的page数。
【mysql】 【innodb】 【adaptive】 【page】 点击查看原文>
Worklog: https://dev.mysql.com/worklog/task/?id=8355 问题: Lock_grant锁实际上是一个读写锁,每执行一条sql都要读取执行check_grant来检查权限是否匹配,这时候加的是读锁,而读锁是可以并发的。大多数情况下加锁开销是很不明显的,但是在MySQL将大多数只读场景下的锁都消除掉后,LOCK_grant开始变的比较突出了。 5.7里主要消除掉了几种会影响到只读性能的锁: #为InnoDB表消除THR_LOCK #MDL LOCK维护改成LOCK FREE的算法 #为AUTO-COMMIT的SELECT缓存Read View来减少trx_sys->mutex冲突 Stewart Smith report了一个Bug#72829 来描述LOCK_grant在power机型的影响,在他的测试中,LOCK_grant去除掉后,居然有50的性能提升。我相信这是和平台相关的。。。因为我的机器上很难达到这样的提升。。。。 我也在bug上跟着吐槽啦,MySQL 5.7.5的只读测试中,LOCK_grant直接排到第一位了: …
[获取更多]
图片来自Percona官网
今天同事在用 percona toolkit 工具中的 pt-table-checksum 对主从数据库进行校验,提交命令后,一直提示下面的信息:
Pausing because Threads_running=0
看字面意思是在提示当前活跃线程数为0,但为什么不继续执行呢。这个提示信息有点含糊其辞,该工具是用Perl写的,因此直接打开看脚本跟踪一下,大概就明白怎么回事了,原来是这个工具有负载保护机制,避免运行时对线上数据库产生影响。
和这个机制相关的参数名是: –max-load,其类型是:Array,用法是一个或多个 variables = value …
[获取更多]