mysql5.7--配置InnoDB I / O容量

InnoDB主线程和其他线程在后台执行各种任务,其中大多数任务与I/O相关,例如从缓冲池中刷新脏页,并将更改从更改缓冲区写入相应的辅助索引。InnoDB试图以不影响服务器正常工作的方式执行这些任务。它试图估计可用的I/O带宽并调整其活动以利用可用容量。

innodb_io_capacity 和 innodb_io_capacity_max

这两个参数只有当你在频繁写操作的时候才有意义(它不适用于读操作,例如 select)。若你真的需要对它进行调整,最好的方法是要了解系统可以支持多大的 IOPS。运行 sysbench 或者任何其他基准工具来对磁盘吞吐量来进行基准测试是一个好方法。

innodb_io_capacity

变量定义innodb可用的总体I/O容量。它应该设置为系统每秒可以执行的I/O操作数(IOPS),默认值为200 可动态修改。当设置了innodb_io_capacity时,innodb根据设置的值估计后台任务可用的I/O带宽。

您可以将innodb_io_capacity设置为100或更大的值。默认值为200。通常,100左右的值适用于消费者级存储设备,例如高达7200 rpm的硬盘驱动器。更快的硬盘驱动器、RAID配置和固态驱动器(SSD)将受益于更高的值。

理想情况下,尽量降低设置,但不要太低以至于背景活动落后。如果该值太高,则会从缓冲池中删除数据,并将缓冲区更改得太快,以提供显著的好处。对于具有较高I/O速率的繁忙系统,可以设置较高的值,以帮助服务器处理与高速率行更改相关的后台维护工作。通常,您可以根据InnoDB I/O使用的驱动器数量增加该值。例如,您可以在使用多个磁盘或SSD的系统上增加该值。

对于低端SSD,默认设置200通常就足够了。对于更高端的、总线连接的SSD,可以考虑更高的设置,例如1000。对于具有单个5400 RPM或7200 RPM驱动器的系统,可以将该值降低到100,这表示可以执行约100 IOPS的旧一代磁盘驱动器每秒I/O操作(IOPS)的估计比例。尽管您可以指定一个高值(例如一百万),但在实践中,这样大的值没有什么好处。通常,不建议使用大于20000的值,除非您确定较低的值不足以满足您的工作负载。

调整时请考虑写入工作量 innodb_io_capacity。具有较大写入工作量的系统可能会受益于更高的设置。对于写入工作量较小的系统,较低的设置可能就足够了。innodb_io_capacity设置不是每个缓冲池实例设置。可用的I/O容量在用于刷新活动的缓冲池实例之间平均分配。

innodb_io_capacity_max

如果当MySQL server 写操作特多,刷新活动落后,InnoDB可以更积极地刷新,其每秒I/O操作速率(IOPS)比InnoDB_io_capacity变量定义的速率更高。innodb_io_capacity_max变量定义了这种情况下innodb后台任务执行的最大IOPS数。

如果您在启动时指定了一个innodb_io_capacity设置,但没有为innodb_io_capacity_max指定值,则innodb_io_capacity_max默认为innodb_io_capacity的两倍,最小值为2000。

当配置innodb_io_capacity_max时,innodb_io_capacity将两倍作为一个好的起点。默认值2000适用于使用SSD或多个常规磁盘驱动器的工作负载。对于不使用SSD或多个磁盘驱动器的工作负载,2000的设置可能太高,并且可能会导致过多的刷新。对于单个常规磁盘驱动器,建议设置在200到400之间。对于高端、总线连接的SSD,请考虑更高的设置,例如2500。与innodb_io_capacity设置一样,将设置保持在尽可能低的范围内,但不要太低,以免innodb无法将IOPS速率扩展到innodb_io_capacity设置之外。

在优化innodb_io_capacity_max时,请考虑写工作负载。具有较大写入工作负载的系统可能会从较高的设置中受益。对于写工作负载较小的系统,设置较低就足够了。innodb_io_capacity_max不能设置为低于innodb_io_capacity值的值。

这里有个参考:
单盘 sas/sata:200左右(10000rpm转速) 

sas*12/raid10 :2000 

ssd 硬盘:8000

fusion-io(闪存卡):25000~50000

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值