使用固态驱动器的数据库I / O加速

使用固态驱动器(尤其是PostgreSQL数据库)如HP的IO加速器提高数据库性能的体验是什么? 你有没有看到任何显着的改进?

这里有一个很棒的博客文章,里面有很多来自James Hamilton的研究和数据链接,我曾经是微软的架构师。

SSD与企业级SATA和SAS磁盘

我和Richard以及Carl在周二的.NET Rocks录音中简单地讨论了这个问题。 如果你有一个随机读取工作负载的IO瓶颈,那么使用SSD应该会给你一个很大的提升,因为它会缩短延迟和寻找时间。

希望这可以帮助

[编辑:PS,当然,我的数据/观点是围绕着SQL Server,但是一个IO子系统是一个IO子系统,结果应该在任何主要的RDBMS中相当好地转化)]

澄清一些已经提到的观点:

MLC驱动器每个单元存储更多数据,这会稍微增加写入延迟。 它们也具有显着较低(通常为1/10)的SLC驱动器的预期写入周期数。 对于任何与企业有关的事情,我会远离MLC驱动器。

关于硬盘的总体使用寿命,所有的固态硬盘都使用耗损均衡algorithm来平衡热写区域。 某些驱动器在内部使用时保留了备用闪存区域(Int​​el X25-E执行此操作,而FusionIO驱动器让您确定分区驱动器时的保留区域),从而扩展了写入容量 – 如果您有80 GB的闪存穿60级的分区,你的硬盘持续时间更长。

所有的SSD也需要擦除周期才能覆盖块。 (删除文件时块不会被删除,因为文件删除是FS操作,块设备不会看到它)。 在控制器不佳的驱动器的繁重写入期间,这可能会导致巨大的性能损失,因为此操作可能需要一段时间,并且在某些情况下会阻止访问。 英特尔的驱动器,我相信,利用他们的备用闪存来加速这一点 – 他们使用备用闪存提供一个干净的块写入,然后擦除脏块,并将其移动到备用池在后台。 有一个新的ATA TRIM命令在较新的驱动器中实现,支持linux和windows 7,这将允许操作系统触发所有脏块的后台擦除,这将提高性能。

SSD的长期“性能下降”通常与上述的擦除/写入周期相关,所以体面的驱动器和TRIM命令应该基本上消除这个问题。

如果您要为企业系统获得固态硬盘,请进行研究,只获得优质的企业级SLC驱动器。 英特尔X25-E(不是-M,这些是台式机驱动器)和Fusion-IO驱动器是我现阶段推荐的唯一的驱动器。

我们用Fusion IO卡做了一些Oracle基准testing。 这很快。

采取我们的35分钟过程之一下降到11分钟。

它本身不是SSD驱动器,而是带有NAND存储器的PCI卡。

SLCtypes应该比MLCtypes更好。

不幸的是,只有64位操作系统支持,所以32位必须迁移或等待一个32位驱动程序(从Fusion IO)。