欢迎来到天天文库
浏览记录
ID:24590118
大小:50.00 KB
页数:3页
时间:2018-11-15
《mysql分组提交和实时fsync--》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、mysql分组提交和实时fsync>> Groupmitandrealfsync 分组提交和实时fsync DuringtherecentmonthsIveseenfeersupgradingtoMySQL5.0andhavingseriousperformancesloesincertaincases.ySQL5.0ifbinarylogingisenabled(asitenablesXA)在MySQL5.0中如果启用二进制日志(binarylog)(启用XA也是如此),则分组提交中断了CertainOS/Hardanceatthecostofbeing
2、nonACID某些操作系统/硬件配置仍旧只是实现了伪fsync,由于它是非ACID,结果导致大量的性能损失 Firstonecanbetrackedbythisbug.Inthenutshelltheproblemis-neplementedinMySQL5.0ergroupmitcode.Theneithoplemented.XAalloitcodeuchmorepeoplescreamingaboutthisproblemifOSanyOS/Hardemoryandsocanbelostifpoanceimprovementandyoumightsee10
3、00+offsync()callspersecond.SoifyourOSisnotgivingyourealfsyncyoumightnotnoticethisbug.Theperformancedegradationuchsmaller,especiallywithlargetransactions. 第二个问题很有趣。事实上如果操作系统更加诚实的话,我们将会听到更多的用户的抱怨。幸好,对我们来说,不少操作系统/硬件组合还是基于fsync()之上。fsync()调用假使安全地把数据放在磁盘中,除非有备用电池高速缓存依赖于磁盘的驱动速度才只能达到每秒80-2
4、00次连续的fsync()调用。而伪fsync()则只是把数据写在磁盘内存中,一旦断电了,这些数据就会丢失了。不过这么做能获得很高性能,大约能达到每秒有1000多次的fsync()调用。因此,如果你的操作系统不支持实时fsync()调用,就要12下一页>>>>这篇文章来自..,。注意这个bug。性能会被降低,不过这会越来越少,尤其是在很大的事务过程中。 Soho? 那么,如何解决这个问题呢?Disablebinarylog.Thiscouldbeoptionforslavesforexampleerecoveryetc.禁用二进制日志。这在那些不需要及时恢复
5、的slave上这个是可选的,以及其他类似的情况下。CheckifyouOSisdoingrealfsync.YoushouldtoknoplebyusingSysBench:sysbench–test=fileio–file-fsync-freq=1–file-num=1–file-total-size=16384–file-test-mode=rndepageandyoushouldseehoanyrequests/secitisdoing.YoualsomightthispagemysqlUtils
6、/eextratestsforfsync()correctness. 检查你的操作系统是否支持实时fsync()。如果你关心数据的安全性,则无论如何都必须要知道。这可以用SysBench来检查:sysbench–test=fileio–file-fsync-freq=1–file-num=1–file-total-size=16384–file-test-mode=rndeeffectasfakefsync()butyoucanmakeitsecure(Hoakesureyourdrivesareno
7、tcachingdatabythemselves).ThegoodthingRAIDnotauthorityinthisquestionbutasHeikkidescribesitasfundamentaltaskImnotsureitySQL5.0中的一项基础工作,不知道在5.1中是否能够完成。上一页12>>>>这篇文章来自..,。
此文档下载收益归作者所有