MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Mengelola Operasi yang Berjalan Lama di MongoDB

MongoDB memberi Anda sejumlah alat untuk mengelola operasi yang berjalan lama di sistem. Sangatlah penting untuk melacak operasi yang berjalan di server produksi Anda kapan saja, karena dalam beberapa kasus, Anda mungkin memiliki kueri kasar atau pembuatan indeks yang mematikan kinerja server Anda.

Perintah MongoDB yang memberi Anda informasi ini adalah "db.currentOp()". Untuk informasi lebih lanjut, lihat dokumentasi MongoDB untuk db.currentOp(). Perintah mengambil parameter untuk membatasi output dengan db, operasi, waktu eksekusi, dll.

Berikut adalah contoh keluarannya:

{
  opid: 294,
  active: false,
  op: "query",
  ns: "admin",
  query: { "query": {}, orderby: { "$natural": -1 } },
  client: "0.0.0.0:0",
  desc: "rsMgr",
  threadId: "0x7f3e6af3f700",
  waitingForLock: false,
  numYields: 0,
  lockStats: { timeLockedMicros: { R: 1, W: 1 },
  timeAcquiringMicros: { r: 1, w: 1 }
}

Bidang yang paling menarik adalah:

  1. opid - ID operasi.
  2. op - Operasi yang sedang dijalankan.
  3. ns - Basis data dan koleksi tempat operasi dijalankan.
  4. detik_berjalan - Jumlah detik operasi telah berjalan.

Setelah Anda mengidentifikasi operasi yang berjalan lama, Anda mungkin ingin menghentikannya dalam beberapa kasus. Operasi yang ingin Anda gunakan adalah:

db.killOp(<opid>)

Tak perlu dikatakan bahwa Anda ingin menggunakan perintah ini dengan sangat hati-hati. Jangan hentikan operasi yang tidak Anda ketahui. Saya pribadi hanya merasa nyaman untuk menghentikan kueri yang sudah berjalan lama.

Jika Anda memiliki operasi yang secara konsisten memakan waktu lama, MongoDB menyediakan opsi lain – maxTimeMS:

E.g. db.find(...).maxTimeMS(30)

Jika Anda mengetahui bahwa Anda memiliki operasi yang berjalan lama yang ingin Anda hentikan setelah jangka waktu eksekusi tertentu terlampaui, gunakan opsi maxTimeMS untuk menetapkan batas waktu eksekusi operasi ini.

Di ScaleGrid, kami memahami pentingnya alur kerja ini – jadi kami telah membuatnya ke dalam konsol admin kami. Konsol 'admin' pada halaman detail cluster menyediakan akses ke daftar operasi di server MongoDB Anda:

Anda juga dapat memilih operasi tertentu dan memilih untuk menghentikannya. Seperti biasa, gunakan opsi ini dengan bijaksana:


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Pencadangan MongoDB Otomatis

  2. Mengenkripsi Data MongoDB saat Istirahat

  3. MongoDB $indexOfArray

  4. beberapa operator pembaruan mongo dalam satu pernyataan?

  5. SSL MongoDB dengan sertifikat yang ditandatangani sendiri di C#