Parfois, les opérations deviennent incontrôlables dans MongoDB et peuvent finir par s'exécuter pendant des centaines de secondes, et affecter les performances jusqu'à ce qu'elles soient tuées ou terminées.
Lorsque cela se produit, je sais que j'ai killOp()
à ma disposition, mais comment puis-je tuer uniquement les opérations de longue durée ciblées sans également tuer (par exemple) les opérations de longue durée impliquées dans la réplication (ce qui peut être dangereux)?
la source
db.currentOp()
sur notre base de données fragmentée renvoie des opérations dans l'espace de noms "" (alias ns: "") qui sont très longues avec une desc de "repl writer worker n" (où n est un entier). Je suggérerais de mettre en liste blanche les espaces de noms dans vos bases de données réelles avec des requêtes que vous voudrez peut-être tuer. Quelque chose comme&& (['users', 'analytics'].indexOf(op.ns) != -1)
au lieu de la!op.ns.startsWith
condition.