mysql8容量_mysql8 参考手册--配置InnoDB I/O容量

在InnoDB主线程和其他线程在后台执行各种任务,其中大部分是I / O相关的,如从缓冲池刷新脏页,写从改变缓冲更改相应的二级指标。InnoDB尝试以不会对服务器的正常工作产生不利影响的方式执行这些任务。它尝试估计可用的I / O带宽并调整其活动以利用可用容量。

该innodb_io_capacity变量定义提供给整体的I / O容量 InnoDB。应该将其设置为大约系统每秒可以执行的I / O操作数(IOPS)。当innodb_io_capacity 设置,InnoDB估计I / O带宽可以根据设定值后台任务。

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

理想情况下,将设置保持在尽可能低的水平,但又不要过低,以免后台活动落后。如果该值太大,则会从缓冲池中删除数据,并且过快地更改缓冲区以进行缓存会带来很大的好处。对于具有较高I / O速率的繁忙系统,可以设置较高的值,以帮助服务器处理与高行更改率相关的后台维护工作。通常,您可以根据用于InnoDBI / 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在MySQL选项文件(my.cnf或 my.ini)中设置 值,或在运行时使用一条SET GLOBAL 语句对其进行修改,该 语句要求具有足以设置全局系统变量的特权。请参见 第5.1.9.1节“系统变量特权”。

忽略检查点的I/O容量

innodb_flush_sync默认情况下启用 的变量使 innodb_io_capacity设置在检查点发生I / O活动突发时被忽略 。要遵守innodb_io_capacity设置定义的I / O速率 ,请禁用innodb_flush_sync。

您可以innodb_flush_sync在MySQL选项文件(my.cnf或 my.ini)中设置 值,或在运行时使用一条SET GLOBAL语句对其进行修改,该 语句要求具有足以设置全局系统变量的特权。请参见 第5.1.9.1节“系统变量特权”。

配置最大I/O容量

如果刷新活动落后,则InnoDB可以以比innodb_io_capacity变量定义更高的每秒I / O操作速率(IOPS)更积极地进行刷新 。该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值的值。

设置innodb_io_capacity_max 为DEFAULT使用 SET 语句(SET GLOBAL innodb_io_capacity_max=DEFAULT)设置 innodb_io_capacity_max为最大值。

该innodb_io_capacity_max 限制适用于所有缓冲池实例。它不是每个缓冲池实例设置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值