美文网首页
mysql 参数调优(6)之磁盘IO性能相关的innodb_io

mysql 参数调优(6)之磁盘IO性能相关的innodb_io

作者: 尹楷楷 | 来源:发表于2020-12-29 17:47 被阅读0次

    作用于磁盘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

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

    相关文章

      网友评论

          本文标题:mysql 参数调优(6)之磁盘IO性能相关的innodb_io

          本文链接:https://www.haomeiwen.com/subject/czseahtx.html