mongodb单节点性能

时间:2015-07-30 00:08:39

标签: mongodb grails

我将MongoDB用于我的团队使用的内部ADMIN类型的应用程序。 Mongo安装在一个盒子上,没有副本集。 ADMIN应用程序每天插入70K to 100K个文档,我们维护4个月的数据。 DB在任何给定时间都有~100 million个文档。 部署应用程序后,几天都开始正常运行。随着数据累积达到4个月的最大限制,我发现MongoDB存在严重的性能问题。 我在Linux机器上安装了MongoDB 3.0.4,并没有对任何优化设置进行微调。

我需要调整任何优化设置吗?
ADMIN应用程序具有调度程序,每隔1/2小时运行一次,以插入和清除过时的数据。鉴于以下集合在createdDate,env,messageId,sourceSystem上定义了索引,我看到很少有查询正在30 min进行响应。
示例查询:具有给定env,sourceSystem但在给定日期范围内的文档计数。
ADMIN应用程序使用grails,并使用GORM创建上述查询。它曾经在一开始就很好地工作。但在一段时间内,性能下降。我也试过重启应用程序。它没有帮助。我认为按原样使用MongoDB(如开发模式)可能会导致性能问题。关于在设置中调整什么的建议(可能是cpu / mem限制等)?

{
    "_id" : ObjectId("5575e388e4b001976b5e570f"),
    "createdDate" : ISODate("2015-06-07T05:00:34.040Z"),
    "env" : "prod",
    "messageId" : "f684b34d-a480-42a0-a7b8-69d6d18f39e5",
    "payload" : "JSON or XML DATA",
    "sourceSystem" : "sourceModule"
}

更新

指数:

[
        {
                "v" : 1,
                "key" : {
                        "_id" : 1
                },
                "name" : "_id_",
                "ns" : "admin.Message"
        },
        {
                "v" : 1,
                "key" : {
                        "messageId" : 1
                },
                "name" : "messageId_1",
                "ns" : "admin.Message"
        },
        {
                "v" : 1,
                "key" : {
                        "createdDate" : 1
                },
                "name" : "createdDate_1",
                "ns" : "admin.Message"
        },
        {
                "v" : 1,
                "key" : {
                        "sourceSystem" : 1
                },
                "name" : "sourceSystem_1",
                "ns" : "admin.Message"
        },
        {
                "v" : 1,
                "key" : {
                        "env" : 1
                },
                "name" : "env_1",
                "ns" : "admin.Message"
        }
]

0 个答案:

没有答案