binlog cache size设置是否合理判断

二进制日志是写操作是,首先写入二进制日志缓冲(binlog_cache)然后commit,再从binlog_cache写入到binlog文件,默认大小为32K,而binlog_cache是session级别的,也就是说实际binlog cache占用内存数= connections * binlog_cache,可见如果connection过高,binlog_cache不宜设置的过大,如果binlog_cache设置的过小,不足以满足commit前transaction产生的binlog时,会引发mysql使用临时文件来写binlog_cache。那么如何判断当前session的binlog_cache设置的是否合理呢。可以通过下面的命令查看。

show variables like '%binlog_cache_szie%';(32K)

 

show global status like '%binlog_cache%';

binlog_cache_use:内存中使用binlog_cache次数

binlog_cache_disk_use:使用临时文件(即磁盘)写二进制日志次数。

从上面的截图可以看出,mysql使用了5次临时文件来写入binlog_cache,说明32K的binlog_cache_size对当前mysql来说并不够用。可根据系统实际的内存压力来调整binlog_cache_size参数。

posted @ 2017-06-21 16:49  Jandison  阅读(2534)  评论(0编辑  收藏  举报