我们的测试工具创建 n 个线程并在每个线程内执行 m 次迭代。我们计算最小、平均和最大操作时间。所以我们不时看到 mongo 执行请求非常慢 - 最多几秒钟。此外,每次第一次操作最慢时,我们甚至故意将其从统计数据中排除,但 avg 和 max 之间的差异仍然很大。正常吗?我可以消除那些缓慢的操作吗?为什么mongo执行一些请求非常慢?
当我们同时运行插入/获取/删除/更新测试时,单操作模式和混合模式的结果如下。在混合模式下 thread=1 意味着我们为每种类型的测试创建了 4 个线程
我们使用默认值 - 每台主机 100 个连接
资源
public void storeMt(MyTestObject myTestObject) {
mongoTemplate.insert(myTestObject );
}
public MyTestObject getMt(long id) {
MyTestObject result = mongoTemplate.findById(id, MyTestObject.class);
return result;
}
@Document
public class MyTestObject implements Serializable {
private static final long serialVersionUID = 1L;
@Id
private long id;
//class contains 20+ fields
.......