MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Quản lý các hoạt động dài hạn trong MongoDB

MongoDB cung cấp cho bạn một số công cụ để quản lý các hoạt động lâu dài trong hệ thống. Điều cực kỳ quan trọng là phải theo dõi các hoạt động đang chạy trên máy chủ sản xuất của bạn tại bất kỳ thời điểm nào, vì trong một số trường hợp, bạn có thể có các truy vấn rắc rối hoặc bản dựng chỉ mục đang giết chết hiệu suất của máy chủ của bạn.

Lệnh MongoDB cung cấp cho bạn thông tin này là “db.currentOp ()”. Để biết thêm thông tin, hãy tham khảo tài liệu MongoDB cho db.currentOp (). Lệnh nhận các tham số để hạn chế đầu ra theo db, hoạt động, thời gian thực hiện, v.v.

Đây là một ví dụ đầu ra:

{
  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 }
}

Các trường thú vị nhất là:

  1. opid - ID của hoạt động.
  2. op - Hoạt động đang thực thi.
  3. ns - Cơ sở dữ liệu và bộ sưu tập mà thao tác đang thực thi.
  4. secs_running - Số giây hoạt động đã chạy.

Khi bạn xác định được các hoạt động lâu dài, bạn có thể muốn chấm dứt chúng trong một số trường hợp. Thao tác bạn muốn sử dụng là:

db.killOp(<opid>)

Không cần phải nói rằng bạn muốn sử dụng lệnh này rất cẩn thận. Không chấm dứt hoạt động mà bạn không biết. Cá nhân tôi chỉ cảm thấy thoải mái khi chấm dứt các truy vấn kéo dài.

Nếu bạn có các hoạt động thường xuyên mất nhiều thời gian, MongoDB cung cấp một tùy chọn khác - maxTimeMS:

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

Nếu bạn biết rằng bạn có các hoạt động kéo dài mà bạn muốn dừng lại sau khi vượt quá một lượng thời gian thực thi nhất định, hãy sử dụng tùy chọn maxTimeMS để đặt giới hạn về thời gian thực thi của tùy chọn này.

Tại ScaleGrid, chúng tôi hiểu tầm quan trọng của quy trình làm việc này - vì vậy chúng tôi đã xây dựng quy trình này vào bảng điều khiển dành cho quản trị viên của mình. Bảng điều khiển 'quản trị viên' trên trang chi tiết cụm cung cấp quyền truy cập vào danh sách hoạt động trên máy chủ MongoDB của bạn:

Bạn cũng có thể chọn một hoạt động cụ thể và chọn chấm dứt nó. Như mọi khi thực hiện tùy chọn này một cách thận trọng:


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Quản lý trực quan các tài liệu và bộ sưu tập MongoDB

  2. Các trường hợp sử dụng cho NoSQL

  3. Node - Mongoose 3.6 - Sắp xếp truy vấn với trường phổ biến

  4. Tính tổng của cột trong MongoDB

  5. Kiến trúc để bảo mật:Hướng dẫn cho MongoDB