存储 频道

MarkLogic NoSQL闪存方案基准测试

        【IT168 评测】今年五月份华为发布了一篇名为《华为Tecal ES3000 PCIe SSD国际权威评测第一》的文章中提到华为的Tecal ES3000 PCIe SSD在Storagereview的评测中业内知名,笔者近日找到Storagereview关于这次评测的原文并进行了编译。以此来对MarkLogic NoSQL存储基准测试以及测试结果进行介绍。

  MarkLogic 6是一款企业级NoSQL(“Not Only SQL”)数据库,其灵活性和可扩展性都优于传统SQL数据库。并能够为关键应用提供提供企业级的搜索、ACID事务处理、故障恢复、复制以及安全等功能。MarkLogic将数据库功能、搜索以及应用服务融合进一个系统中。综合起来说MarkLogic就是综合了现有的工具、技术以及数据库经验向关键应用提供一个可靠、可扩展的安全平台。

MarkLogic NoSQL闪存方案基准测试

  公共领域、传媒以及金融等多个领域中很多公司和组织都使用了MarkLogic架构。引入MarkLogic的这些公司和组织大多面临着大规模数据量、多种数据结构以及复杂的数据类型数据环境,当然这些环境我们现在也叫大数据。MarkLogic典型方案支持智能分析、实时的决策、风险关系、数据资产管理、信息化供应链管理以及内容迁移等功能。

  MarkLogic基准测试(MarkLogic Benchmark)

  这项测试由MarkLogic研发,测试主要对硬件的性能以及MarkLogic软件的功能进行评价。测试的工作负载主要包括两个方面:

  1. 导入阶段(Ingestion phase)。将一个大数据集插入到MarkLogic数据库索引中。

  2. 查询阶段(Query phase)。对数据库进行搜索、视图更新以及删除数据操作。

  用于测试的数据来源于维基百科的xml,文件以zip的格式存于磁盘上。在导入阶段会使用到MarkLogic内容汲取工具(mlcp)。

  导入阶段的测试是一个I/O密集型的人物。I/O的变化分为三个阶段:

  1. 文档被写入内存,并将操作以日志的形式写入硬盘。

  2. 内存很快过载,数据只能被写到磁盘上

  3. 随着硬盘磁盘数量的增加,MarkLogic必须对硬盘进行整合,

  未来保证测试结果的精准,我们在同一个环境下重复对每个闪存设备进行24次导入和查询的测试。每款PCIe产品测试的间隔时间为1~2个小时,所以每个产品的测试大约要话费24~48个小时。每次测试中都会涉及日志写 (J-lat), 保存写(S-lat), 合并读(MR-lat) 合并写 (MW-lat)的操作。

MarkLogic NoSQL闪存方案基准测试

  从上图我们可以看见整个测试中的IO路径:

  日志写操作是将变化记录到数据库中,当一个更新请求被发起,所有对数据库的更改都会被写入日志。再次根据日志对数据库进行更改的时候可以不必发起新的请求。这种更改数据库的操作可以是添加、更换或者是删除文档的操作。这种日志的主要作用就是在断电的时候维持数据库的更新,减少系统宕机带来的损失。其中操作的延迟主要是J-LAT来衡量。

  当文件数量足够多,内存容量不足时,数据将被存到磁盘上,写操作的延迟主要来源于磁盘。这种将内存溢出的数据存往磁盘被称为保存。保存写的延迟主要通过S-lat来衡量。

  当磁盘数量越来越多的时候,整个系统的效率问题变得非常明显。读一个单独的数据表(term list),MarkLogic必须要先把数据表先从所有的个人数据表里提取相关的数据然后将结果进行整合。为了易于管理,MarkLogic将这种收集整理的工作都放到了后台。这一步操作包括两个部分,一个部分就是将需要的数据从多块磁盘上进行搜集,这步叫做合并读(Merge Read);另一个过程是将数据进行整合进一个新的表里,这步叫做合并写(Merge Write)。整个过程中会涉及到索引和数据的合并和优化,以及对碎片的整理等操作。其中合并读的延迟通过MR-lat来显示,合并写通过MW-lat进行显示。

  在导入阶段,MarkLogic还会对所有的文档建立索引,并且建立索引表等等。这需要整个系统在I/O密集和CPU密集的两种环境之间保持一个平衡。

  测试的原数据来自维基百科,之所以选择这里面的数据,是因为维基百科中包含有很多非英语以及非ASCII编码的文本在其中。测试用的数据大多是阿拉伯语、荷兰语、法语、德语、日语、简体中文、繁体中文等等种类的语言。这样的数据环境会给MarkLogic带来多方面的压力。最后静态数据使得基准测试可以重复进行,这对于准确的衡量多个软件版本下的硬件性能非常必要。

  MarkLogic测试环境

  StorageReview企业级测试中除了MarkLogic NoSQL之外,还使用了高速网络和多种服务器。用作搭建测试环境的服务器来自于EchoStreams和联想。

MarkLogic测试环境

  整个存储解决方案的测试环境分为三个部分,第一:MarkLogic NoSQL数据库集群(MarkLogic NoSQL Database Cluster)和MarkLogic数据库客户端。存储主机选用的是联想的2UThinkServer RD630,配有PCIe扩展卡,4个SATA/SAS SSD,还有一个将NAS/SAN设备连到InfiniBand 网络上的主机。 MarkLogic数据库集群,我们使用了EchoStreams GridStreams四节点服务器,配有8个Intel 至强E5-2640CPU提供极高的计算能力并给存储设备施加最大的压力。客户端方面我们使用了1U联想ThinkServer RD530服务器,他的作用是想内存提供所需要的数据并通过高速网络将数据传至NoSQL数据库里。刚才提到测试环境的高速网络是指Mellanox InfiniBand交换机和NIC搭建的56Gb/s InfiniBand网络。高速网络保证了系统性能瓶颈不在网络这端。这点非常重要,单看PCIe存储解决方案,单个的PCIe加速卡可以轻松的将1-3GB/s网络的带宽跑满。性能更高的全闪存存储方案则可以达到10GB/s的带宽。

  Marklogic基准测试:

  EchoStreams GridStreams四节点数据库集群

  8个 Intel E5-2640 CPUs (每个节点有两个, 2.5GHz, 6-cores, 15MB缓存)

  256GB RAM (每个节点64GB, 8GB x 8 Micron DDR3,每个CPU 32GB)

  4 x 100GB Micron RealSSD P400e (每节点一块, SATA接口)

  4 x Mellanox ConnectX-3 InfiniBand 适配器

  CentOS 6.3

  Lenovo ThinkServer RD530数据库结点

  两个 Intel E5-2640 CPU (2.5GHz, 6-cores, 15MB缓存)

  64GB RAM (8GB x 8 Micron DDR3, 每颗CPU32GB)

  200GB x 3东芝10k SAS RAID5 (基于LSI 9260-8i)

  1 x Mellanox ConnectX-3 InfiniBand适配器

  CentOS 6.3

  Lenovo ThinkServer RD630存储主机

  两颗Intel E5-2680 CPU(2.7GHz, 8核心, 20MB缓存)

  32GB RAM (8GB x 4 DDR3,每颗 16GB)

  100GB Micron RealSSD P400e SSD (基于LSI 9207-8i)

  1 x Mellanox ConnectX-3 InfiniBand适配器

  CentOS 6.3

  外置的JBOD: iXsystems Titan iX-316J

  Mellanox SX6036 InfiniBand Switch

  36 FDR (56Gb/s)端口

  总计4Tb/s带宽

  测试主要尝试通过模拟一个真实的企业应用和工作负载环境而不是一个完全脱离现实的工作负载环境,来对不同的存储解决方案的性能进行一个评估。人造的负载环境可能能将存储设备的性能发挥到极致,但是并不能说明这套存储设备在实际应用中依然能保证如此的高性能。

  测试结果可以看出在参与测试的几个解决方案中,4块SLC SSD的Dell R720的延迟是最低的。而单块闪存来说,华为的ES3000系列的PCIe卡(MLC)表现最好。

 

测试结果列表

测试结果列表

测试结果列表

0
相关文章