这是我的BigQuery作业的JSON的一部分。你可以看到waitMsAvg
比其他元素高得多。我想知道这到底是什么意思。
...
"waitRatioAvg": 0.12868179138919197,
"waitMsAvg": "205214",
"waitRatioMax": 0.13476867702572207,
"waitMsMax": "214921",
"readRatioAvg": 0,
"readMsAvg": "0",
"readRatioMax": 0,
"readMsMax": "0",
"computeRatioAvg": 0.005780879641822491,
"computeMsAvg": "9219",
"computeRatioMax": 0.021879428621593488,
"computeMsMax": "34892",
"writeRatioAvg": 0.000007524737574777079,
"writeMsAvg": "12",
"writeRatioMax": 0.00023326686481808947,
"writeMsMax": "372",
...
在这个文档中,它说"等待调度的平均分片花费毫秒数",但是实际调度的是什么呢?
这是否意味着当阶段即将启动时,没有足够的空闲插槽,因此调度器等待,直到它能够启动?
如果我优化其他查询,以便我可以确保一些空闲槽,那么waitMsAvg
会减少吗?
这可能是真的,但很难说。我所见过的所有这些情况都是由于达到插槽限制造成的。
我建议尝试使用Monitoring,它有3个指标可以帮助你发现这是否正确:
Slots allocated
Slots allocated by job type
Slots available
我认为如果你分析这些指标证实,如果你打槽限制。有时这个限制是由多个项目共享的,您也必须考虑到这一点。