比较各种大小的Mongodb数据库的性能

问题描述 投票:1回答:1

我已经读过一条建议,即MongoDB数据库的大小不应超过服务器上RAM的两倍。我尝试使用https://github.com/brianfrankcooper/YCSB来测试这个建议,但到目前为止看起来我看到的性能损失仅在加载到数据库(写入)期间而不是读取操作。

我的服务器上有192GB RAM,所以我比较了两个数据库:

  • “正常大小”加载300,000,000个对象,在磁盘上占用350GB。
  • “大尺寸”装载了1200,000,000个对象,磁盘占用1.4TB。

db.stats报告“正常大小”db的索引大小为20GB,而大型DB的索引大小为60GB。

加载小型数据库需要2300秒。由于内存有限,我预计加载“大尺寸”数据库需要4次以上。它实际上需要30310秒,这是加载“正常大小”数据库的时间的13倍。

我测试的很少 - 根据YCSB基准定义:

在我测试的所有工作负载和客户端线程的veraity数量中,大型数据库的吞吐量读数是正常大小数据库的+/- 10%。

我的主要问题:

  • 我为这次测试采取的方法有问题吗?
  • 根据服务器上的RAM大小,数据库的实际大小是多少?
  • 我应该做一些调整,以便在将数据加载到数据库时获得更好的吞吐量吗?
mongodb performance performance-testing database-performance
1个回答
0
投票

经过一些研究,我认为我的测试可能不够好。那是因为YCSB默认使用zipfian分发。这意味着我在RAM中的数据集包含测试中大多数查询的数据。

似乎更好的测试将是“均匀”分布而不是拉链。

© www.soinside.com 2019 - 2024. All rights reserved.