我读过一条建议,即MongoDB数据库的大小应不超过服务器RAM的两倍。我尝试使用https://github.com/brianfrankcooper/YCSB来测试此建议,但到目前为止,看来我看到的性能下降仅在加载数据库(写入)期间发生,而在读取操作上没有。
我的服务器上有192GB RAM,因此我比较了两个数据库:
db.stats报告说,“正常大小”数据库的索引大小为20GB,对于大型数据库为60GB。
加载小型数据库花了2300秒。 由于内存有限,我预计加载“大容量”数据库将花费4倍以上的时间。实际上,它花费了30310秒,这是加载“正常大小”数据库所需时间的13倍。
根据YCSB基准测试,我很少测试:
在我测试的所有工作负载中以及对于客户机线程的真实性数量,大型数据库的吞吐量读取为正常大小数据库的+/- 10%。
我的主要问题:
答案 0 :(得分:0)
经过一些研究,我发现我的考试可能还不够好。 这是因为YCSB默认使用zipfian分发。 这意味着我在RAM中的数据集包括测试中大多数查询的数据。
似乎更好的测试是使用“统一”分发而不是zipfian。