我正在尝试使用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。这是否正在测试刀片的性能?
答案 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
对应于“查找”操作。