Ocasionalmente, as operações ficam fora de controle no MongoDB e podem terminar em execução por centenas de segundos, afetando o desempenho até que sejam eliminadas ou concluídas.
Quando isso acontece, eu sei que tenho killOp()
disponível, mas como eu mato apenas operações de longa duração direcionadas sem também matar (por exemplo) as operações de longa duração envolvidas na replicação (o que pode ser perigoso)?
fonte
db.currentOp()
em nosso banco de dados sharded retorna operações no espaço de nome "" (também conhecido como ns: "") que são executadas por muito tempo com uma descrição de "repl writer worker n" (onde n é um número inteiro). Eu sugeriria colocar os namespaces nos seus bancos de dados reais na lista de permissões com consultas que você pode querer matar. Algo como, em&& (['users', 'analytics'].indexOf(op.ns) != -1)
vez da!op.ns.startsWith
condição.