0

我们的生产 mongos 突然开始运行缓慢,如果我们重新启动 mongo db,问题就会消失。性能从毫秒下降到秒,并且在我们重新启动之前永远不会恢复(或者我们可能没有等待足够长的时间)。我在 mongo 日志中看不到任何内容。所以认为这可能是由于页面错误

db.stats(1024*1024)

    "db" : "xrr",
    "collections" : 7,
    "objects" : 605843,
    "avgObjSize" : 3614.9300528354706,
    "dataSize" : 2088,
    "storageSize" : 2517,
    "numExtents" : 57,
    "indexes" : 41,
    "indexSize" : 383,
    "fileSize" : 8125,
    "nsSizeMB" : 16,
    "dataFileVersion" : {
            "major" : 4,
            "minor" : 5
    },

服务器状态和工作集似乎输出

    "workingSet" : {
            "note" : "thisIsAnEstimate",
            "pagesInMemory" : 113607,
            "computationTimeMicros" : 23265,
            "overSeconds" : 830
    },

mongo 机器有 4 GB 的内存,工作集的大小似乎很低。所以我不明白为什么在这种情况下会出现页面错误,因为我们有足够的内存来容纳一半的数据库和内存中的所有索引。mms 确实显示页面错误略有增加,我不明白为什么工作集没有扩展以适应内存中的记录,以及当我重新启动 mongos 时问题如何自行解决。我们使用的是 2.4.1 版本

我注意到非映射虚拟内存很高 ~2.4GB ,我只有 100 -200 个连接

rs_default:PRIMARY> db.serverStatus().mem
{
    "bits" : 64,
    "resident" : 2275,
    "virtual" : 138017,
    "supported" : true,
    "mapped" : 67584,
    "mappedWithJournal" : 135168
}

rs_default:PRIMARY> db.stats(1024*1024)
{
    "db" : "xrr",
    "collections" : 7,
    "objects" : 605844,
    "avgObjSize" : 3614.9263836895307,
    "dataSize" : 2088,
    "storageSize" : 2517,
    "numExtents" : 57,
    "indexes" : 41,
    "indexSize" : 383,
    "fileSize" : 8125,
    "nsSizeMB" : 16,
    "dataFileVersion" : {
            "major" : 4,
            "minor" : 5
    },
    "ok" : 1
}
4

0 回答 0