本文共 1396 字,大约阅读时间需要 4 分钟。
上一次的《rpmbuild制作mysql-5.7.17的rpm包》中虽然rpm是制作完成了,但是会造成Innodb 无法使用aio功能,关于aio功能官方说明了在默认情况下是开启了,但是在制作rpm出来的包就不能启动到aio功能,innodb_use_native_aio参数的值总是off;同时也感谢网友的信任,在收到邮件后我就多次测试过了。因为在相同的编译参数下是可以正常启动的,而rpmbuild时却不正常。
经常多次的实验发现,在编译参数中加入:-DINSTALL_PLUGINDIR="lib/plugin" 加载插件目录,等完成编译后即可成功启动innodb_use_native_aio功能;
cmake \
-DCMAKE_INSTALL_PREFIX=%{prefix} \
-DINSTALL_PLUGINDIR="lib/plugin" \
-DMYSQL_DATADIR=/data/mysql \
-DWITH_BOOST=../boost_1_59_0 \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
aio功能需要跟系统支持
查看系统是否开启了异步:
cat /proc/slabinfo | grep kiocat /proc/sys/fs/aio-max-nrroot@(none) 09:08:37>show variables like '%aio%';
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| innodb_use_native_aio | ON |
+-----------------------+-------+
1 row in set (0.00 sec)
root@(none) 09:12:09>show variables like '%io_threads';
+-------------------------+-------+
| Variable_name | Value |
+-------------------------+-------+
| innodb_read_io_threads | 8 |
| innodb_write_io_threads | 8 |
+-------------------------+-------+
2 rows in set (0.00 sec)
参考来源:
转载地址:http://cdyzo.baihongyu.com/