我正在对文档数据存储进行POC,因此我选择了MongoDB和CouchBase进行评估。
环境详情如下
机器:Centos 6.7,2核心CPU,CPU MHz:2494.078,RAM:7 GB(6 GB免费)
MongoDB db版本v3.2.0,默认配置
CouchBase版本:4.1.0-5005企业版(集群RAM:3GB,桶RAM:1GB)
文件大小:326 B
以下是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的性能?
答案 0 :(得分:1)
当前版本的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 :(得分:0)
您使用的是什么耐久性选项?你的桶内存用完吗? 2 cpus对于couchbase最低要求是偏低的,如果压缩与您的测试同时运行我希望能有所作为。可以在设置中禁用此功能。
单个节点上的Couchbase不是我在生产中运行的东西,minium 3节点,所以如果你有时间增加你的节点数可能会给你一些更有意义的数字
答案 2 :(得分:0)
如果您有6GB可用内存,则可能需要增加分配给存储桶的内存量。在MongoDB 3.2中,WiredTiger将使用60%的内存减去1GB。对于7GB,这是2.6到3.2GB(我不确定它是可用的60%还是总数的60%)。也许配置您的桶以匹配它。