我正在尝试使用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
我不明白为什么查询/秒为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
对应于“查找”操作。