高级事务处理的数据库应用是企业IT系统中较为常见的一种应用,例如网络上的电子交易类的应用都属于这个类型。这类型应用与一些视频流的应用不一样,如果是一个视频流的应用,那么I/O的次数可能并不是非常频繁,但是一次I/O产生的数据传输量会较为巨大,而高级事务处理的特点是,会产生一系列的频繁的离散的I/O请求,每次I/O请求所产生的数据却很小。
磁盘性能是高级事务处理运行性能的关键
高级事务处理数据库(high-transaction database)通常由4~8KB大小的记录构成,这些数据记录一般是被随机访问的。也正是因为每个数据记录的容量都很小,而且数据库的运行是随机读取数据条目,所以数据库的性能很大程度上取决于磁盘存取时间(disk access time)。磁盘存取时间是非常关键的指标,在运行速度较慢的数据库应用中,CPU经常需要长时间等待磁盘I/O操作的完成。
数据库对磁盘I/O的需求本身已经很苛刻,可不断增加的磁盘容量又给这个局面雪上加霜。长期以来,工艺的进步不断推动磁盘容量的增加,但是磁盘I/O的增加却相对缓慢,跟不上容量的急剧增加。也就是说,同样的数据容量,新的数据库通常倾向于拥有更少的磁盘,这样就更降低了数据库的效率。
以一个50GB的磁盘为例,如果存储的都是典型数据库大小的记录,那么每秒只有0.004%的容量可以被随机访问。当然,在多块磁盘上做条带化信息可以增加数据存取,但是数据库的完整性需求却又经常与并行存取相冲突。
面对数据库的高磁盘需求,固态硬盘给出了完美的解决方案。固态硬盘可以提供多种不同级别的性能。下面,我们就着重比较不同技术的硬盘——基于Flash和DRAM的固态硬盘,还有传统硬盘。我们会采用标准的评测工具来评测,到底固态硬盘有多大的性能提升。
基于DRAM的固态硬盘表现最佳
传统硬盘:
上表是一块传统磁盘的各项性能指标评测值。当数据大小为4~8KB的时候,磁盘的读写速度大概为1~2MBps。我们可以分析一下这个速度的由来——传统磁盘平均寻道时间与旋转延迟的和大概是5~10毫秒。我们也注意到当数据块大小增大的时候,读写速度有所提升,到128KB的时候,提升十分明显。不过很可惜,数据库通常的数据块大小是我们红色标注出来的4~8KB。总的来说,传统磁盘的容量最便宜,但是性能也是最差的。
基于闪存的固态硬盘(flash-based SSD):
上面是基于闪存的固态硬盘的性能评测展示。我们发现,随机读性能对比传统硬盘有很大的提升,但是随机写性能却表现糟糕。在4~8KB大小的数据块上,写的速度和I/O都仅为传统硬盘的1/10。
基于DRAM的固态硬盘:
我们看一下上面的DRAM固态硬盘性能表现,我们发现这是当之无愧的硬盘性能冠军。不论数据块是大是小,基于DRAM的硬盘性能都令人惊叹。我们在数据库日常使用中经常发现,数据库的性能之所以差强人意,很重要的原因,是被一小部分热点文件或是短暂频繁使用的硬盘区域拖了后腿。我们可以设想,如果我们将这部分I/O需求最多的数据存储到基于DRAM的固态硬盘中,我们将极大的提升整体数据库的性能。当然,基于DRAM的固态硬盘的费用也是非常昂贵,因为基于DRAM的固态硬盘内部必须持续供电,而且还得为其做备份。但是如果将少量高I/O需求的数据存储到基于DRAM的固态硬盘中,其余大部分还是存储到传统的硬盘上,还是一个非常好的选择。
三种硬盘的评测数据比较
蓝色部分数据:基于DRAM的固态硬盘
红色部分数据:基于闪存的固态硬盘
黄色部分数据:传统硬盘
随机写入性能比较
随机读性能比较
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
评估读取密集型与写入密集型应用场景中的SSD用例
IT购买者必须在读取密集型、混合使用型和写入密集型SSD之间进行选择时做出正确判断。 当首次投放市场时,第一批 […]
-
Optane:开启英特尔最新技术的窗口
现在Optane产品已经出现在市面上了,能为存储和处理提供最快的存储器的特性看上去很不错,但是Optane真的像英特尔在市场宣传上说的那样吗?
-
闪存行业新标杆:三星15TB固态磁盘面市
三星15.36TB固态磁盘将32 NAND闪存介质封装在2.5英寸驱动器空间内。厂商同时宣称在2U数据中心机架空间内,PM1633A可以提升一倍的驱动器数量。
-
SanDisk FalshSoft与缓存软件、SSD相得益彰
近日,SanDisk对其服务器端缓存软件FlashSoft在VMware、Microsoft Windows以及Linux上进行了升级,同时添加了对一些厂商的PCIe、SAS以及SATA固态硬盘的支持。