暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL学习分享--机型选择与配置

SOHU-DBA 2014-02-08
334

2014年1月20日

张:像视频这种需要高带宽的应用,迎来了一个前所未有的发展的时代,这个时代等了十年终于等到了。






MySQL学习分享--机型选择与配置


king_wangheng






由于长期以来,一直忙于日常的工作,自身的学习和提高有所懈怠,最近越发明显感到今年的成长和进步幅度较上年有所降低因此,从今天开始,坚持非工作时间,潜心学习和研究一些技术,每周汇总一下学习成果,一方面提高自己的技术能力和技术深度,另一方面分享给大家,互相交流



1、《Inexpensive SSDs for Database Workloads 


随着SSD的成本不断降低,数据库机型如何选择以及如何更好的利用SSD文中指出,对于之前担心SSD的写寿命问题,现在来看完全没有必要担心,在过保期内,完全不会成为问题。而在选择SSD的容量和选型时,需要根据业务的DB压力情况来选择,SSD最终会降低机器的IO压力,整体性能

在使用SSD的使用方面,文中指出从应用和数据库层面来优化,减少对SSD的写入,更好的保护和延长SSD的寿命值得注意是:

  1. DoubleWrite数据单独存放,并放在HDD上DoubleWrite单独存放在以下内容中介绍,存放在HDD上,是由于DoubleWrite是顺序读写

  2. 事务日志存放在HDD上原因也是顺序读写,使用HDD和Raid卡cache即可。

  3. binlog日志存放在HDD上binlog的读写也是顺序的,使用HDD即可。

  4. 临时空间建议使用tmpfs,即系统的/tmp目录临时目录写入频繁,且顺序读写较多。

  5. BufferPool增大。这样可以提高内存命中率,减少磁盘IO。

  6. innodb事务日志增大SSD的读写性能,可以减少恢复的时间。

  7. innodb使用压缩。通过压缩,减少写入的数据量。

  8. 使用高压缩比的存储引擎更高的压缩比,可以更大程度的减少写入的数据量。

从个人角度来看,SSD的成本会高一些,但是由于提高了单机的性能,会减少机器的数量和机柜成本投入以及运维成本,对于规模化运维来说,的确是利大于弊。SSD的使用方面,大多数可以值得借鉴,但有些需要根据自己的需求进行选择例如:在单机多实例的情况下,连续IO操作也变成随机IO,放在HDD对性能的影响较大,这些在统一化部署过程中,很多都尝试并付出了惨痛的教训




2《Configuration of the Doublewrite Buffer 


MySQL引入DoubleWrite主要是为了避免BufferPool中的数据部分写入到磁盘,而导致无法数据恢复的问题正常情况下,DoubleWrite引入会影响5%~10%的性能损失然而,在写入压力较大时,写入DoubleWrite就会与BufferPool的随机写入产生竞争,性能影响就会加剧

Percona Server引入DoubleWrite独立文件(参数innodb_doublewrite_file),从共用表空间中分离出来由于DoubleWrite写入是顺序的,官方建议使用HDD存放,并且最好存放在独立磁盘空间下,也可以与redo日志放在相同磁盘下

个人认为,目前情况下,DoubleWrite不会造成很大的性能损失,并且如果系统文件层能够保证数据完整性的话,可以禁用DoubleWrite此外,该参数的引入,还需要充分的性能测试和验证。







参考资料



  1. 《Inexpensive SSDs for Database Workloads》http://www.mysqlperformanceblog.com/2013/10/03/inexpensive-ssds-database-workloads/

  2. 《Configuration of the Doublewrite Buffer》http://www.percona.com/doc/percona-server/5.5/performance/innodb_doublewrite_path.html?id=percona-server:features:percona_innodb_doublewrite_path




文章转载自SOHU-DBA,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论