Encerrar operações em execução
Nesta página
Visão geral
O MongoDB fornece duas instalações para encerrar operações em execução: maxTimeMS()
e db.killOp()
. Use essas operações conforme o necessário para controlar o comportamento das operações em um sistema do MongoDB .
Procedimentos disponíveis
maxTimeMS
O método maxTimeMS()
define um limite de tempo para uma operação. Quando a operação atinge o limite de tempo especificado, o MongoDB interrompe a operação no próximo ponto de interrupção.
Encerrar uma query
A partir do mongosh
, utilize o seguinte método para definir um limite de tempo de 30 milissegundos para esta query:
db.location.find( { "town": { "$regex": "(Pine Lumber)", "$options": 'i' } } ).maxTimeMS(30)
Encerrar um comando
Considere uma operação de execução potencialmente longa usando distinct
para retornar cada campo collection
distinto que tenha uma chave city
:
db.runCommand( { distinct: "collection", key: "city" } )
Você pode adicionar o campo maxTimeMS
ao documento de comando para definir um limite de tempo de 45 milissegundos para a operação:
db.runCommand( { distinct: "collection", key: "city", maxTimeMS: 45 } )
Operações que atingirem maxTimeMS
retornarão um erro MaxTimeMSExpired
.
killOp
O método db.killOp()
interrompe uma operação em execução no próximo ponto de interrupção. db.killOp()
identifica a operação de destino por ID da operação.
db.killOp(<opId>)
Aviso
Encerre as operações em execução com extrema cautela. Use apenasdb.killOp()
para encerrar operações iniciadas por clientes e não encerre operações internas de banco de dados.
Cluster fragmentado
O comando killOp
pode ser executado em um mongos
e pode encerrar consultas (ou seja, operações de leitura) que abrangem fragmentos em um cluster. O comando killOp
do mongos
não se propaga para os fragmentos quando a operação a ser eliminada é uma operação de gravação.
Para saber mais sobre como eliminar operações em um cluster fragmentado, consulte:
Para obter informações sobre como listar as operações de fragmentação que estão ativas em um mongos
, consulte o parâmetro localOps
em $currentOp
.