设为首页 加入收藏

TOP

SSD 下的 MySQL IO 优化尝试(二)
2015-11-10 12:17:13 来源: 作者: 【 】 浏览:4
Tags:SSD MySQL 优化 尝试
。切换之后的主从关系可以查看第五节。


?


修改方法不赘述。


修改之后的 MySQL 配置:


在 innodb_io_capacity 为 1000,innodb_max_dirty_pages_pct 为 20 的环境下,I/O until 有小幅波动,而且波峰和波谷持续交替,这种情况是不希望看到的。innodbBuffPoolPagesFlushed 比较稳定,但 innodbBuffPoolPagesDirty 持续上涨,没有下降的趋势。故做了如下调整:innodb_max_dirty_pages_pct = 30,innodb_io_capacity = 1500。调整完成后,innodbBuffPoolPagesDirty 趋于稳定,I/O until 也比较稳定。


?


修改方法不赘述。


修改之后的 MySQL 配置:


针对目前这种 I/O 情况,做了如下调整:innodb_max_dirty_pages_pct = 40,innodb_io_capacity = 2000。


?


针对以上两个调整,我们通过结合监控数据来分析 I/O 状态。


以下是高速缓冲区的脏页数据情况,如图二:


InnoDB Dirty pages
图二 主库的脏数据情况


InnoDB Dirty pages


以下是脏数据落地的情况,如图三


InnoDB Flushed
图三 主库的脏数据落地情况


InnoDB Flushed


28 号早 8 点到下午 7 点,当脏数据上升,也就是在内存中的数据更多,那么落地就会很少,呈现一个平稳的趋势;当脏数据维持不变,也就是脏数据达到了 innodb_max_dirty_pages_pct 的限额(innodb_buffer_pool_size 为 40G,innodb_max_dirty_pages_pct 为 40%,也就是在内存中的脏数据最多为 16G,每个 Page 16K,则 innodbBufferPoolDirtyPages 最大为 1000K),落地就会增多,呈现上升的趋势,所以才会出现上述图片中的曲线。


这是最后的配置:


?


此次针对 SSD 以及 MySQL InnoDB 参数优化,总结起来,也就是以下三条:


针对 innodb_write_io_threads 和 innodb_read_io_threads 的调优我们目前没有做,我相信调整为 8 或者 16,系统 I/O 性能会更好。


还有,需要注意以下几点:


文末,说一点比较有意思的。之前有篇文章提到过 SSDB。SSDB 底层采用 Google 的 LevelDB,并支持 Redis 协议。LevelDB 的设计完全是贴??? SSD 的设计思想的。首先,尽可能地转化为连续写;其次,不断新增数据文件,防止同一位置不断擦写。另外,SSDB 的名字取得也很有意思,也很有水平。我猜想作者也是希望用户将 SSDB 应用在 SSD 上吧。


?


MySQL 文档:?8.5 Optimizing for InnoDB Tables?


(题图来自:pachosting.hk)


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Oracle GoldenGate 学习教程三、.. 下一篇MySQL & NoSQL – Memcached 插件

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: