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

时间:2019-04-10 20:23:04

标签: mongodb performance performance-testing database-performance

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

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

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

db.stats报告说,“正常大小”数据库的索引大小为20GB,对于大型数据库为60GB。

加载小型数据库花了2300秒。 由于内存有限,我预计加载“大容量”数据库将花费4倍以上的时间。实际上,它花费了30310秒,这是加载“正常大小”数据库所需时间的13倍。

根据YCSB基准测试,我很少测试:

在我测试的所有工作负载中以及对于客户机线程的真实性数量,大型数据库的吞吐量读取为正常大小数据库的+/- 10%。

我的主要问题:

  • 我参加此考试的方法是否有问题?
  • 根据服务器上RAM的大小,实际的数据库实际大小是多少?
  • 是否应该进行一些调整,以便在将数据加载到数据库时获得更好的吞吐量?

1 个答案:

答案 0 :(得分:0)

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

似乎更好的测试是使用“统一”分发而不是zipfian。