MongoDB基准测试插入

时间:2015-01-12 13:25:38

标签: mongodb performance performance-testing database-performance nosql

我正在尝试使用JS线束对MongoDB进行基准测试。我正在尝试插入。给出in mongo website的示例。

但是,我正在尝试一个插入操作,它完全正常,但是会发出错误的查询/秒。

ops = [{op: "insert", ns: "benchmark.bench", safe: false, doc: {"a": 1}}]

以上工作正常。然后,我在mongo shell中运行了以下命令:

for ( x = 1; x<=128; x*=2){
    res = benchRun( { parallel : x ,
                      seconds : 5 ,
                      ops : ops
                    } )
    print( "threads: " + x + "\t queries/sec: " + res.query )
}

它给出了:

threads: 1   queries/sec: 0
threads: 2   queries/sec: 0
threads: 4   queries/sec: 0
threads: 8   queries/sec: 0
threads: 16  queries/sec: 0
threads: 32  queries/sec: 1.4
threads: 64  queries/sec: 0
threads: 128     queries/sec: 0

我不明白为什么query / sec为0并且没有插入单个doc。这是否正在测试刀片的性能?

1 个答案:

答案 0 :(得分:0)

正在回答,因为我刚遇到类似的问题。

尝试用printjson(res)替换打印语句。 您将看到res具有以下字段:

{
    "note" : "values per second",
    "errCount" : NumberLong(0),
    "trapped" : "error: not implemented",
    "insertLatencyAverageMicros" : 8.173300153139357,
    "totalOps" : NumberLong(130600),
    "totalOps/s" : 25366.173139864142,
    "findOne" : 0,
    "insert" : 25366.173139864142,
    "delete" : 0,
    "update" : 0,
    "query" : 0,
    "command" : 0
}

如您所见,查询计数为0,因此在打印res.query时,查询计数为0。要获取每秒的插入操作数,您需要打印res.insert。我相信res.query对应于“查找”操作。