博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql ALL_O_DIRECT引发的unaligned AIO/DIO导致hang
阅读量:6245 次
发布时间:2019-06-22

本文共 2523 字,大约阅读时间需要 8 分钟。

公司内部有一套mysql环境,使用的是percona server分支(和其他几十套环境的版本、参数完全相同),就这套环境每隔两三天就会hang一次,关键hang的时候服务器cpu也就是百分之三四十,swap也没用多少,磁盘空间这些都足够,mysql.err里也没有任何的异常信息。出现问题后,root登录也没有响应一直卡在那里。。。太奇怪了。。。

因为已经发生三四次了,对项目组影响较大,于是觉得找到根本原因。随后在/var/log/message和dmesg中发现了EXT4-fs (dm-0): Unaligned AIO/DIO on inode 1323274 by mysqld; performance will be poor.

因为ext4默认的页面大小为4096,mysql log的默认大小为512。因为我们设置了参数innodb_flush_method=ALL_O_DIRECT,所以导致了该问题(参见https://bugs.launchpad.net/percona-server/+bug/1033051,http://www.oschina.net/translate/more-about-the-innodb_log_block_size-variable,https://www.percona.com/blog/2011/01/03/effect-from-innodb-log-block-size-4096-bytes/)。

所以决定设置innodb_log_block_size=4096,重启mysql,启动的时候发现出错了。。

2016-08-31 10:18:01 9711 [Note] Plugin 'FEDERATED' is disabled.

InnoDB: Warning: innodb_log_block_size has been changed from default value 512. (###EXPERIMENTAL### operation)
InnoDB: The log block size is set to 4096.
2016-08-31 10:18:01 9711 [Note] InnoDB: Using atomics to ref count buffer pool pages
2016-08-31 10:18:01 9711 [Note] InnoDB: The InnoDB memory heap is disabled
2016-08-31 10:18:01 9711 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2016-08-31 10:18:01 9711 [Note] InnoDB: Memory barrier is not used
2016-08-31 10:18:01 9711 [Note] InnoDB: Compressed tables use zlib 1.2.3
2016-08-31 10:18:01 9711 [Note] InnoDB: Using Linux native AIO
2016-08-31 10:18:01 9711 [Note] InnoDB: Using CPU crc32 instructions
2016-08-31 10:18:01 9711 [Note] InnoDB: Initializing buffer pool, size = 512.0M
2016-08-31 10:18:01 9711 [Note] InnoDB: Completed initialization of buffer pool
2016-08-31 10:18:01 9711 [Note] InnoDB: Highest supported file format is Barracuda.
InnoDB: No valid checkpoint found.
InnoDB: If you are attempting downgrade from MySQL 5.7.9 or later,
InnoDB: please refer to http://dev.mysql.com/doc/refman/5.6/en/upgrading-downgrading.html
InnoDB: If this error appears when you are creating an InnoDB database,
InnoDB: the problem may be that during an earlier attempt you managed
InnoDB: to create the InnoDB data files, but log file creation failed.
InnoDB: If that is the case, please refer to
InnoDB: http://dev.mysql.com/doc/refman/5.6/en/error-creating-innodb.html
2016-08-31 10:18:01 9711 [ERROR] Plugin 'InnoDB' init function returned error.
2016-08-31 10:18:01 9711 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2016-08-31 10:18:01 9711 [ERROR] Unknown/unsupported storage engine: InnoDB
2016-08-31 10:18:01 9711 [ERROR] Aborting

先把旧的ib_log*人工删除了,再重启,成功。

待观察几天看看,是否只有这原因所致。

转载地址:http://ycpia.baihongyu.com/

你可能感兴趣的文章
【OpenCV学习】利用HandVu进行手部动作识别分析
查看>>
Ubuntu下安装配置JDK1.7
查看>>
AngularJS快速入门指南15:API
查看>>
安装惠普M1136打印机一直处于“新设备已连接”状态怎么办?
查看>>
android88 录音机
查看>>
美国诚实签经验(最全集合)
查看>>
HttpContext.Current:异步模式下的疑似陷阱之源
查看>>
《Java与模式》- 创建型模式
查看>>
[Android]使用Kotlin开发Android(二)
查看>>
php将对象数组转成普通数组
查看>>
org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files (x86)\Java\jdk1.7.0_7
查看>>
Python 中的 if __name__ == '__main__' 该如何理解(1)
查看>>
Qt之对话框设计——利用QPalette改变控件颜色
查看>>
#lspci | grep Eth
查看>>
Linux下svn常用指令【转】
查看>>
C#下2\10\16进制互转代码总汇
查看>>
人工智能和机器学习领域的一些有趣的开源项目
查看>>
Objective-C:继承的体现
查看>>
三星发布Exynos 7872移动处理器 定位中端市场
查看>>
面试题大全
查看>>