0

我在 ubuntu 18 上使用 Mysql 8 , innodb_io_capacity_max 的默认值为 2000 。如果我将其减少到 500 。如果我加载一些大文件 5GB 会有什么问题吗?考虑我的设置 2 CPU vcore,8GB RAM Azure 实例(Ubuntu 18)。. 我的考虑是它不应该失败,而是因为 innodb_io_capacity_max 值的变化而不是缓慢的加载已经被接受

4

1 回答 1

0

首先,让我们看一下office docinnodb_io_capacity_max中的内容:

如果刷新活动落后,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 后台任务执行的最大 IOPS 数

当您将其减少到 500 时,这意味着刷新活动落后时的最大 IOPS 数更改为 500。

可能会减慢您的加载操作。但是,加载大文件的性能不仅与刷新到磁盘的 IOPS 数有关。还有其他关键点:

  1. 硬件性能:Azure 实例磁盘的 iops 怎么样。
  2. 更改缓冲区大小:二级索引的好处
  3. 重做日志文件大小和文件数:如果重做日志文件大小或文件数太小,mysql 必须停止加载新的插入数据,直到有足够的脏页刷新到磁盘。
  4. innodb_max_dirty_pages_pct 值:如果这个值过低,刷新率会自动增加,
  5. 加载的并发线程数:太有负载会导致page_cleaner警告。……

对于 Question, will it be any issue if I load some big size file 5GB,我认为会有一些关于加载性能的警告并且应该没有失败。

在尝试回答您的问题时,我发现了另外 2 个可能对您有帮助的问题。链接如下。这位先生,@Bill Karwin在回答这两个问题时给出了非常有用的解释。

于 2020-08-11T10:04:29.557 回答