Innodb关键特性之异步IO(AIO)

1、关于AIO与SIO

  为了提高磁盘操作性能,当前的数据库系统都采用异步IO的方式来处理磁盘操作。

  1、异步IO:用户可以在发出一个IO请求后立即再发出另外一个IO请求,当全部IO请求发送完毕后,等待所有IO操作完成,这就是AIO。

  2、与AIO对应的是Sync IO,即每进行一次IO操作,需要等待此次操作结束才能继续接下来的操作。

2、开启异步IO

  首先OS要有异步io,且开启,然后mysqld要链接,要不然OS异步io没有开启,数据库的异步io也起不来。(this variable applies to Linux systems only, and cannot be changed while the server is running.)

 1、文件系统层面需要打开这个功能: 一般都是默认开启的。

ldconfig -v|grep libaio
libaio.so.1.0.0 -> libaio.so.1.0.0
libaio.so.1 -> libaio.so.1.0.1

     2、AIO是数据库层面的一个特性需要打开: 默认是开启,但是阿里云默认是关闭的,开启的native aio性能提升,可以提高到75%。

mysql>show variables like 'innodb_use_native_aio';
+-------------------------+-----------------+
| Variable_name           | Value           |
+-------------------------+-----------------+
| innodb_use_native_aio   | OFF             |
+-------------------------+-----------------+

3、异步IO的好处   

  1、不用等待直接响应上一个用户的请求;

  2、多次的请求在一起排序,请求的数据页是在一起的,一次读出来,减少多次读。(数据库的读写请求队列放在文件系统中单独分配的一块小内存结构里,非文件系统的缓存)

4、wio:wait io

  1、同步IO一定会产生wait IO

  2、异步IO会降低wait IO,但是也可能会有wait IO

  3、尽量采用异步IO(性能高于同步IO)

  4、数据库层面启用异步IO

  5、文件系统层面启用异步IO, Linux具备异步IO的能力

  6、操作系统层面wio的含义理解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值