Sysbench OLTP,每秒处置事务数
在运用高功能低延迟的存储装备(如SSD)时,我们可能会碰到意想不到的瓶颈。本文讲述的就是遭受和处置如许的一个瓶颈的故事。
InnoDB 有一个共同的特征叫“双写缓存”(Double Write Buffer)。这个特征用于恢复那些未完好写入的页(Page),假如电源呈现毛病时 InnoDB 正在往硬盘上写一个页(1页=16KB=32磁道),那末便可能招致该页未完好写入。下次读取这个页的时分,InnoDB 会发明其校验码(checksum)不适配并断定其是破坏的。为了将这个破坏的页恢复,我们需求这个页的原始备份。
“双写缓存”就供给了如许的备份。当 InnoDB 将一个页写入硬盘时,该页的内容起首被写入双写缓存中。仅当该缓存被平安的写入到硬盘后,该页的内容才会被写到硬盘的终极地位。当要恢复的时分,InnoDB 会扫描双写缓存,对缓存中每一个准确的页,异样反省其在数据文件中的内容能否准确。
在这个机制中,校验码的生成和两次写入的进程都是要耗费工夫的,由此会带来页数据写入的功能降落。只要当运用疾速存储装备,并履行大量写操作的时分,其影响才会变得分明。在测试的时分你可以禁用这些特征,但我激烈建议不要在生产情况中这么做。
今朝想要运用“原子写”特征的话,需求采取 DirectFS 文件系统,该文件系统是 FusionIO SDK 的一部分。来自 Monty Program AB 的 Wlad Vaintroub 与 FusionIO 的开发职员一道,为InnoDB/XtraDB 运用该特征作了需要的修正。假如数据库中一切的表空间都驻于 DirectFS/FusionIO 上,并由此支撑“原子写”特征的话,那末可以用新的变量 innodb_use_atomic_writes=1 来将“双写缓存”切换成“原子写”。该补钉曾经包括到 MariaDB-10.0.2,并也将包括到 MariaDB 5.5.31。该特征的运用阐明文档在这里。
来看看数据吧!开端的测试后果标明,原子写特征关于小数据集(同 RAM 巨细相适配的数据集)来讲,带来的益处很小乃至没有。可是在运用疾速的 SSD 时,因为读写速度大幅改良,数据库可以禁受(同 RAM 比拟)大很多的数据集。
下面是 Sysbench 的 OLTP 基准数字,运用100GB数据(16表,400亿行),但 InnoDB 缓冲池的 RAM 只能有16GB。功能固然比凡是的10GB数据集要慢些。数字:
|
小数据集(10G) | 大数据集(100G) |
max ro tps | 8000 | 3000 |
max rw tps | 6000 | 1800 |
对大数据集,下面的设置装备摆设将被比拟:
线程 | 双写入 | 原子写入 | 原子写入+疾速校验 | 原子写入+无校验 | |||
---|---|---|---|---|---|---|---|
1 | 159.81 | 164.34 | +2.8% | 179.68 | +12.4% | 184.72 | +15.6% |
2 | 316.65 | 343.21 | +8.4% | 378.61 | +19.6% | 391.72 | +23.7% |
4 | 544.05 | 635.26 | +16.8% | 699.6 | +28.6% | 726.55 | +33.5% |
8 | 830.37 | 1062.8 | +28.0% | 1176.8 | +41.7% | 1214.7 | +46.3% |
16 | 1054.7 | 1421.2 | +34.7% | 1570.7 | +48.9% | 1610.1 | +52.7% |
32 | 1208.3 | 1615.1 | +33.7% | 1736.6 | +43.7% | 1767.4 | +46.3% |
64 | 1286.9 | 1673.2 | +30.0% | 1793.2 | +39.3% | 1833.7 | +42.5% |
128 | 1266.2 | 1653.1 | +30.6% | 1824.5 | +44.1% | 1875.6 | +48.1% |
256 | 1139.4 | 1505 | +32.1% | 1586.3 | +39.2% | 1618.3 | +42.0% |
结论:
测试细节:
MariaDB-5.5.30 (lp trunk). Sysbench-0.5 (Lua 启用). Complex OLTP 测试. 400 mio rows in 16 tables. 16GB InnoDB 缓冲池, 4G 重做日记.
本次测试的剧本和后果,自始自终的向大师公开。
本文中的一切译文仅用于进修和交换目标,转载请务必注明文章译者、出处、和本文链接。 2KB翻译任务按照 CC 协议,假如我们的任务有进犯到您的权益,请实时联络我们。2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务