【问题标题】:Comparing performance of Mongodb database of various size各种规模的MongoDB数据库性能对比
【发布时间】:2019-04-10 20:23:04
【问题描述】:

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

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

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

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

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

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

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

我的主要问题:

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

【问题讨论】:

    标签: mongodb performance performance-testing database-performance


    【解决方案1】:

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

    似乎更好的测试是使用“均匀”分布而不是 zipfian。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-08
      • 1970-01-01
      • 1970-01-01
      • 2011-05-17
      相关资源
      最近更新 更多