单节点上的MongoDB vs Couchbase性能

问题描述:

我正在做文档数据存储上的POC,因此我选择了MongoDB和CouchBase进行评估。单节点上的MongoDB vs Couchbase性能

环境详细是如下面

机:Centos的6.7,2核CPU,CPU兆赫:2494.078,RAM:7 GB(6 GB免费)

MongoBD分贝版本V3.2.0与默认配置

CouchBase版本:4.1.0-5005企业版(群集RAM:3GB,铲斗RAM:1GB)

文档尺寸:326乙

˚F以下是POC的结果

 
+--------------+---------------------------------------------+--------------+--------------+--------------+--------------+--------------+-------------+-------------+ 
| Operation | insert (in 10 batch each bacth is of 100K) | select query | select query | select query | select query | select query | range query | range query | 
+--------------+---------------------------------------------+--------------+--------------+--------------+--------------+--------------+-------------+-------------+ 
| Record Count | 1000K          | 0   | 100   | 33k   | 140k   | 334k   | 114k  | 460k  | 
| Mongo  | 99 sec          | 568ms  | 792ms  | 1500ms  | 3800ms  | 7800ms  | -   | 15387ms  | 
| CouchBase | 370 sec          | 8ms   | 250ms  | 6700ms  | 28000ms  | 69000ms  | 28644ms  | -   | 
+--------------+---------------------------------------------+--------------+--------------+--------------+--------------+--------------+-------------+-------------+ 

客户端:我已经使用JAVA sdk和spring数据。

单节点上的couchbase和mongodb的性能有很大的差异。是否有任何配置参数来增加couchbase的性能?

您使用了哪些耐用性选项?你的存储空间用完了吗? 2 cpus对于couchbase的最低要求是偏低的,如果压实与您的测试同时进行,我会期望有所作为。这可以在设置中禁用。

Couchbase在单个节点上,是不是我会永远在生产,铅丹3个节点上运行,所以如果你有时间的增加你的节点数可能给你一些更有意义的数字

+0

不,我没有用完桶内存。是的,我知道2 CPU核心是低端的,但同样的测试在mongo上给我高吞吐量。可能是我会尝试更多的CPU。你能告诉我每秒3个节点有多少操作?如果你分享环境细节,这将是充分的帮助。谢谢@lan – Vipul

+0

我的产品集群相当大,10个节点,每个节点8个cpus。当使用耐久性选项写入磁盘0,等待副本0时,它可以每秒处理200 000个事务。您是否使用ycsb来运行基准测试?查看我的博客条目https://embracingnosql.wordpress.com/2015/09/28/benchmarking-your-couchbase-cluster-using-yahoo-cloud-serving-benchmark/ – Ian

+0

嘿,谢谢我会检查您的博客 – Vipul

如果您有6GB内存可用,您可能需要增加分配给存储桶的内存量。在MongoDB 3.2中,WiredTiger将使用60%的内存减去1GB。对于7GB,这是2.6到3.2GB(我不知道它是否是60%的可用或60%的总数)。也许配置你的存储桶以匹配。

+0

我有将存储桶大小增加到3GB并重新运行测试,但没有太大区别。 – Vipul

它看起来是Spring Data的最新版本MongoDB使用WriteConcern.UNACKNOWLEGED - 它很火并且忘记了。您应该启用WriteResultChecking.EXCEPTION或使用WriteConcern.ACKNOWLEDGED。

http://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#mongo.mongo-3.write-concern

+1

Hi @Shane with WriteConcern.ACKNOWLEGED mongodb用了213毫秒来编写100万条记录。 – Vipul