基于SSD实现的海量检索缓存(石子夜)
发布时间:2018-09-26  浏览次数:60

基于SSD实现的海量检索缓存

石子夜

(北京万方数据股份有限公司  北京  100038

 

     通过实现基于SSD的大规模数据缓存,并与Memcached等基于内存缓存技术比较,笔者发现在购置成本、管理成本、运营成本等多个方面,基于SSD的缓存方案比基于内存的缓存方案性价比可高达几倍甚至上百倍。SSD的快速随机寻道优势,使其不仅能用于替换传统机械硬盘,在处理海量数据时,还可以用于替换传统的大容量内存。

关键词 SSD  固态存储硬盘  海量数据处理  Memcached  缓存

1.       问题背景

       近两年,SSD即固态存储硬盘开始兴起。一方面,SSD本身具有快速随机存取、低耗能、超轻超薄、低故障率(非机械部件)等特点。另一方面,由于技术发展,SSD逐渐解决了容量小,顺序存取速度慢的问题。当前市场上的最新SSD,单盘容量达到1TBPCI接口的SSD 吞吐量超过1GB/sIOPS超过10万次/sSSD性能全面达到或超过传统机械硬盘,而其存取速度、响应时间等关键指标更是大幅(12个量级)超过传统机械硬盘。因此在一些领域,SSD已经开始替换传统机械硬盘。如:百度公司在2008年将其搜索服务器完全换用SSD[1]

整个存储设备分层体系,一般为CPU缓存、主板芯片缓存、内存、硬盘、磁带。速度逐渐减慢、容量逐渐加大。SSD作为一种新的存储设备,在分层体系中位于内存与磁盘中间的位置。那么,它除了可以替换传统硬盘,是否能替换部分内存呢?

2.       Memcached集群与SSD性能比较

SSD对内存的替换,可以从SSD的优势,即大容量应用着手。当前最典型的大容量内存应用就是诸如Memcached的分布式缓存,此类系统几乎是所有大型网站的核心。由于此类Cache应用中有大量随机存取,传统机械硬盘由于随机存取响应速度太低(服务器硬盘5ms以上),无法应付大量访问。内存的随机存取速度比传统机械硬盘高2个量级以上,但是单机内存容量比较小,必须采用分布式的方案,通过计算机集群提供足够的内存容量。

上百台计算机组成的大型Memcached集群可以做到TB量级容量,每秒完成数十万次存取。Memcached性能瓶颈主要在网络,一般使用千兆以太网,吞吐量不会超过100MB/s,即使最新的万兆以太网,吞吐量也不会超过1GB/s。一台使用SSD阵列的计算机,容量可以达到10TB,吞吐量可以超过4GB/sIOPS超过100万次/s[2],其性能可以超过一个大型Memcached集群。

3.       基于SSD的缓存实例

上面对比的是大型应用性能,对于一般中小型Memcached集群,一两块普通SSD硬盘就可与之相抗衡。在万方数据知识服务平台中,需要对相似检索结果进行长达30天左右的缓存,平均每条10k左右,缓存量超过千万条,需占用100G以上的存储空间。如果采用传统Memcached方案,需要至少432G内存服务器。经过之前对SSD的分析,我们决定尝试使用一台8G内存服务器加两块160GBSSD硬盘实现缓存系统。系统使用BerkeleyDB(非事务模式)作为后端存储数据库,采用.NET程序实现了缓存管理的逻辑,并使用WCF实现通讯。

我们随机造1000万的10KBkey-value数据,10线程并发测试,结果如下:

测试类型

总时间

吞吐量(IO

吞吐量(带宽)

写测试

2:19:50

1,191/s

11.91MB/s

读测试

1:06:10

2,518/s

25.18MB/s

本测试的1000万随机数据Key值重复率极低,重复仅2万条左右,所以几乎没有使用内存缓存。虽然性能不是很高,但是应付我们的请求量绰绰有余。在实际运行时,由于短时间内会出现更高的重复比率,很多请求会直接在BerkeleyDB的内存缓存中命中,此时读操作的吞吐量可高达每秒上万次。

4.       性价比分析

我们实现的SSD缓存方案最大优势不是性能,而是成本,或者说是性价比。

4.1.        中小规模Cache性价比

我们先对比一下300G缓存的中小规模系统的采购与运营成本。

1)      Memcached方案:

l         计算机采购费:>30万元(1032G内存HP服务器 

l         机柜租用费用:6万元/年(102U服务器正好占用1个机柜)

2)      SSD缓存方案:

l         计算机采购费:<3万元(18G内存HP服务器,配2160GBIntel SSD[3]

l         机柜租用费用:6千元/

对比可知,上述两种方案采购成本及运营成本均相差10倍以上。此外,10台计算机的管理成本也比1台要高。

4.2.        大规模Cache性价比

我们再看看3T缓存的大规模系统的采购与运营成本。

1. Memcached方案:

l         计算机采购费:>300万元(10032G内存HP服务器,10台交换机)

l         机柜租用费用:60万元/年(1002U服务器占用10个机柜)

2. SSD缓存方案:

l         计算机采购费:约10万元(18G内存HP服务器,31TSSD硬盘)

l         机柜租用费用:6千元/

这次对比的结果令人震惊,两种方案的采购费用相差30倍以上,运营成本相差更是达到100倍。相信随着SSD的发展,SSD缓存方案的计算机采购费用有可能进一步降低到5万元以下。同时,100台计算机的管理成本远超过1台计算机,计算机出现故障的概率也更高,因而也需要更多的人的参与,实际运营成本更高。

5.       结论

SSD的发展,给海量数据处理的应用带来了福音。之前需要大量投入才能得到的大容量高性能,现在只需要原来10%甚至1%的投入。数字图书馆的应用,一般都属于海量数据处理,如能合理应用SSD,就能用更少的成本,达到更好的效果。

参考文献:

[1]       百度搜索服务器完全换用SSD  http://news.mydrivers.com/1/114/114319.htm

[2]       Intel IDF2009展示IOPS高达1M SSD硬盘 http://www.enet.com.cn/article/2009/0929/A20090929546128.shtml

[3]       Intel® X25-M and X18-M Mainstream SATA Solid-State Drives http://download.intel.com/design/flash/nand/mainstream/322208.pdf