mysql 参数调优之磁盘IO性能相关的innodb_io_capacity_max 和innodb_io_capacity

全屏阅读
  • 基本信息
  • 作者:
  • 作者已发布:925篇文章
  • 发布时间:2022年10月03日 9:54:05
  • 所属分类:Mysql优化, PHP+MySql
  • 阅读次数:551次阅读
  • 标签:

作用于磁盘IO,可以提高db吞吐量,提高写入性能

innodb_io_capacity

在Innodb 1.0.x版本之前,这个参数不存在,InnoDB存储引擎最大只会每秒只会刷新100个脏页到磁盘、合并20个插入缓冲。这种硬编码实现方式限制了 磁盘IO吞吐量和写入性能。所以之后提供了一个可以直接配置这个阈值的方式,那么就是  innodb_io_capacity

InnoDB Plugin(从 InnoDB1.0.x版本开始)提供了参数  innodb_io_capacity

该参数影响两个方面,规则如下:
1、合并插入缓冲时,每秒合并插入缓冲的数量为 innodb_io_capacity值的5%,默认就是 200*5%=10
2、在从缓冲区刷新脏页时(checkpoint),每秒刷新脏页的数量就等于innodb_io_capacity的值,默认200

配置建议,它是innodb_io_capacity_max的一半,默认innodb_io_capacity=100。同样,它对读无效对写有决定意义。

这是一个更加高级的调优,只有当你在频繁写操作的时候才有意义(它不适用于读操作)。若你真的需要对它进行调整,最好的方法是要了解系统可以支持多大的 IOPS。譬如,假设服务器有一块 SSD 硬盘,我们可以设置 innodb_io_capacity_max=6000innodb_io_capacity=3000(最大值的一半)。运行 sysbench 或者任何其他基准工具来对磁盘吞吐量来进行基准测试是一个好方法。

innodb_io_capacity_max

若用户使用了SSD类的磁盘,或者将几块磁盘做了RAID,当存储设备拥有更高的 IO速度时,完全可以将 innodbio_capacity值调得再高点,直到符合磁盘IO的吞吐量 为止。

默认 innodb_io_capacity_max=200

推荐配置如下:

innodb_io_capacity 它会直接决定mysql的tps(吞吐性能),这边给出参考:
sata/sas硬盘这个值在200
sas raid10: 2000
ssd硬盘:8000
fusion-io(闪存卡):25,000-50,000

当然最佳的值还是需要自己测试在决定!

顶一下
(0)
100%
订阅 回复
踩一下
(0)
100%
» 郑重声明:本文由mpxq168发布,所有内容仅代表个人观点。版权归恒富网mpxq168共有,欢迎转载, 但未经作者同意必须保留此段声明,并给出文章连接,否则保留追究法律责任的权利! 如果本文侵犯了您的权益,请留言。

目前有 0 条留言 其中:访客:0 条, 博主:0 条

给我留言

您必须 [ 登录 ] 才能发表留言!