10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册 本手册摘录

15.8.7配置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速率的繁忙系统,可以设置更高的值,以帮助服务器处理与高行更改速率相关的后台维护工作。通常,您可以根据所使用驱动器的数量增加该值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.MySQL选项文件中的值(我.CNF.My.ini.)或在运行时使用a修改它集全球语句,它需要足够的权限来设置全局系统变量。看到第5.1.9.1节“系统变量权限”

忽略检查点的I/O容量

innodb_flush_sync变量,该变量在默认情况下是启用的Innodb_io_capacity.在发生在I / O活动的突发期间忽略设置检查点.控件定义的I/O速率Innodb_io_capacity.设置,禁用innodb_flush_sync

你可以设置innodb_flush_syncMySQL选项文件中的值(我.CNF.My.ini.)或在运行时使用a修改它集全球语句,它需要足够的权限来设置全局系统变量。看到第5.1.9.1节“系统变量权限”

配置最大I/O容量

如果冲洗活动落后,Innodb.可以以每秒(IOPS)的I / O操作更高的I / O操作速度更积极地冲洗(IOPS)。Innodb_io_capacity.多变的。这innodb_io_capacity_max变量定义了IOPS的最大值Innodb.这种情况下的后台任务。

如果您指定Innodb_io_capacity.在启动时设置但不指定值innodb_io_capacity_maxinnodb_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.不能充分扩展到超出的IOP率Innodb_io_capacity.环境。

调整时考虑编写工作负载innodb_io_capacity_max.具有较大写工作负载的系统可能受益于较高的设置。对于写工作负载较小的系统,较低的设置可能就足够了。

innodb_io_capacity_max不能设置为低于Innodb_io_capacity.价值。

设置innodb_io_capacity_max默认的用一个语句(设置Global InnoDB_IO_CAPACITY_MAX =默认值) 套innodb_io_capacity_max到最大值。

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