gpt4 book ai didi

performance - Mongo 性能

转载 作者:可可西里 更新时间:2023-11-01 09:12:27 24 4
gpt4 key购买 nike

我们的测试工具创建 n 个线程并在每个线程内执行 m 次迭代。我们计算最小、平均和最大操作时间。 所以我们不时看到 mongo 执行请求非常慢 - 最多几秒钟。而且每次第一次操作都是最慢的,我们甚至有意将其排除在统计之外而且 avg 和 max 之间的差异仍然很大。正常吗?我可以消除那些缓慢的操作吗?为什么 mongo 执行某些请求如此缓慢?

当我们同时运行插入/获取/删除/更新测试时,单一操作模式和混合模式的结果如下。在混合模式下 thread=1 意味着我们为每种类型的测试创建了 4 个线程 Mongo performance test

我们使用默认值 - 每个主机 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
.......

最佳答案

我看不出为什么会发生这种情况。

  1. 这不是 mongoDB 的问题,可能是 java 进程的问题。在内存中启动和加载(分配内存)相关变量需要时间。
  2. 使用 MMS,一种用于 MongoDB 的监控工具来查看数据库是否存在瓶颈。您可以检查数据库锁、网络使用情况、内存使用情况。
  3. MongoDB 获取当前版本的数据库级别的锁。因此,如果您的查询访问同一个数据库(单个数据库的不同或相同集合),则可能会减慢操作速度。
  4. 此外,添加更多线程不一定会提高性能。由于 CPU、内存 (RAM) 等的额外负载,它可能会降低性能。因此,我建议在频繁间隔后增加线程数,然后查看性能何时停止提高。

我敢肯定,如果您这样做,您会找出速度变慢的确切原因。

干杯!

关于performance - Mongo 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20771917/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com