在龙芯上探索数据库虚拟化
云计算是未来,而虚拟化技术则是云计算的基石。在过去10年中,我们见证了虚拟化技术的蓬勃发展。目前,虚拟化技术从最早的硬件虚拟化进入了到新的阶段——软件虚拟化,其中比较流行的容器技术实际就是操作系统的虚拟化。
最近,我们拿到了一款国产数据库虚拟化技术,antsdb,并在龙芯平台上做了兼容性测试。
antsdb 的数据库虚拟化技术,能够在 hadoop 平台上虚拟出一个兼容 mysql 的高并发,低延迟的运营数据库。这样做以后,可以使得数据库的系统架构大大简化,轻松利用 hadoop 的pb级存储能力提高运营数据库的存储能力,以及开展实时大数据分析能力。
使用 antsdb 后的架构如下:
测试标准与国际上最为流行的开源数据库 mysql 高度兼容是 antsdb 的一大特性之一。因此,本次基准测试以 mysql 作为比照对象。为了保持测试的可比较性,antsdb 和 mysql 均使用相同硬件,单节点下进行测试。
本次测试分别使用业界公认的 tpc-c 与 ycsb 两种方法开展:
tpc-c 基准测试是一个在线事务处理基准。它是一个评估数据库性能的国际标准,主要由oracle,ibm、微软集体制定。tpc-c 基准测试以订单输入环境的主要活动(交易)为中心。 这些交易包括输入和交付订单,记录付款,检查订单状态以及监控仓库的库存水平。
ycsb 全称为 yahoo! cloud serving benchmark,是目前业界主流数据库性能评测之一。ycsb 由雅虎开发,不仅安装简单,还可以自由扩展测试数据类型和支持的数据库产品。通过对其进行 扩展,ycsb可以支持对多个不同的数据库产品进行性能测试,通过测试结果可以了解数据库在 并发写入、读取、更新时的一些指标,比如吞吐量、操作延迟等。
测试环境处理器 | loongson-3b 1500mhz,2路,16核 |
内存 | 32 g ram |
存储 | 2tb 机械硬盘 |
操作系统 | red hat enterprise linux 7 |
java | java 8 |
antsdb 配置参数
humpback.space.file.size=1g
humpback.tablet.file.size=1g
antsdb java 配置参数
-server -xms2g -xmx2g -xx: perfdisablesharedmem
mysql 配置参数
default-storage-engine=innodb
max_allowed_packet=32m
innodb_buffer_pool_size=30g
innodb_flush_log_at_trx_commit=0
skip-grant-tables
lower_case_table_names=1
max_connection=300
tpc-c 测试方法
基准测试使用了100个仓库,总共有5000万条记录。 tpc-c涉及五种不同类型和复杂性的并发事务的混合,这些事务要么在线执行,要么排队等待延迟执行。 它通过运用与这种环境相关的广泛系统组件来实现。 tpc-c性能以每分钟的新订单交易来衡量。
tpc-c是行业标准。 有许多不同的实现方法可用。 在此测试中,我们使用了benchmarksql 4.1.1,这是postgresql社区开发的一种流行的tpc-c实现。 它不仅支持postgresql,还支持mysql和其他几个数据库。 因此它可以作为一个公平的比较。
tpc-c 测试结果
两者差距在10%以内。
ycsb 测试方法本次测试使用 10,000,000 条记录的数据量,每条记录有 1 kib 数据量,采用了 4 种测试方法。
- 载入测试 - 从全空数据库载入目标数据量,用来衡量数据库迁移重置性能
- 只读测试 - 用来衡量数据库数据分析能力
- 10%读90%写 - 模拟交互式应用的数据读写模式
- 50%读50%写 - 模拟批处理的数据读写模式
在只读和重读测试中,antsdb 超出 mysql 30%以内,重写测试超出 mysql 五倍。
由于这是一次性能级的测试,我们在测试之初都捏着一把汗。所幸未做任何修改,antsdb 顺利通过了全部功能测试,展示出龙芯 cpu 以及 java 虚拟机的优秀兼容性。
从两项基准测试结果中,可以看出 antsdb 与国际最流行的mysql相比,性能基本维持在同一量级。tpc-c 测试中,antsdb 与 mysql 相比,差距在10%以内。
在 ycsb 测试中,antsdb 在只读和重读测试中超出 mysql 30% 左右,两者基本在同一水平线。在重写测试中,antsdb 获得了较为明显的优势,mysql 五倍的性能。
作为一门全新的虚拟化技术,antsdb 未来还有待技术和市场的检验。不过其全新的虚拟化思路,以及带来的简化的架构还是非常吸引人的,这也是我们这次测试的初衷。我们推荐有 hadoop 使用需求的朋友们可以考虑尝试。我们期待未来 antsdb 能够提供更加全面的功能,兼容更多的数据库类型,以及性能上的出色表现。