10bet网址
MySQL 5.7参考手册
相关的文档10bet官方网站 本手册下载
PDF (Ltr)- 36.3 mb
PDF (A4)- 36.3 mb
手册页(TGZ)- 235.4 kb
手册页(邮政编码)- 347.1 kb
信息(Gzip)- 3.3 mb
信息(邮政编码)- 3.3 mb
本手册节选

14.8.8配置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_capacityMySQL选项文件(my.cnfmy.ini)或在运行时使用集全球语句,该语句需要足够的权限来设置全局系统变量。看到第5.1.8.1节“系统变量特权”

忽略检查点的I/O容量

innodb_flush_sync变量,该变量在默认情况下是启用的,将导致innodb_io_capacity设置为在I/O活动爆发期间被忽略检查点.接口定义的I/O速率innodb_io_capacity设置,禁用innodb_flush_sync

您可以设置innodb_flush_syncMySQL选项文件(my.cnfmy.ini)或在运行时使用集全球语句,该语句需要足够的权限来设置全局系统变量。看到第5.1.8.1节“系统变量特权”

配置I/O最大容量

如果冲洗活动落后,InnoDB可以更积极地刷新,每秒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不能充分扩展IOPS的速率innodb_io_capacity设置。

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

innodb_io_capacity_max的值不能设置为低于innodb_io_capacity价值。

设置innodb_io_capacity_max默认的使用一个语句(集全球innodb_io_capacity_max =违约)集innodb_io_capacity_max到最大值。

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