Cách tìm số liệu thống kê chỉ số MongoDB


8

Có cách nào chúng ta có thể tìm ra những gì tất cả các chỉ mục được lưu vào bộ nhớ cache không? Tôi muốn biết số liệu thống kê liên quan đến trang cho các chỉ mục riêng lẻ (# lần truy cập và bỏ lỡ)

Câu trả lời:


9

Bạn có thể nhận thông tin tổng thể (ví dụ rộng) từ db.serverStatus()lệnh và đặc biệt:

http://docs.mongodb.org/manual/reference/command/serverStatus/#serverStatus.indexCounters.hits http://docs.mongodb.org/manual/reference/command/serverStatus/#serverStatus.indexCount

Những con số này là tổng số được nhìn thấy trong suốt vòng đời của quá trình, vì vậy nếu bạn muốn có được tỷ lệ hoặc xem xu hướng theo thời gian, thì bạn sẽ cần ghi lại chúng theo định kỳ và tìm các giá trị tương ứng. Rất may, nếu bạn cài đặt Giám sát MMS , nó sẽ làm điều đó cho bạn và vẽ biểu đồ kết quả.

Tuy nhiên, hiện tại không có số liệu thống kê cho mỗi chỉ số có sẵn. Yêu cầu tính năng có liên quan có thể được tìm thấy ở đây cho mục đích theo dõi và bỏ phiếu:

https://jira.mongodb.org/browse/SERVER-2227

Cập nhật: tháng 1 năm 2016

Các số liệu thống kê được tham chiếu ở trên đã bị xóa khỏi đầu ra của lệnh trạng thái máy chủ, do đó không còn khả dụng. Tuy nhiên, yêu cầu tính năng được tham chiếu hiện đã hoàn tất và có sẵn trong phiên bản 3.2 dưới dạng $indexStatstoán tử tổng hợp (các tài liệu được liên kết cũng chứa đầu ra mẫu). Để hoàn thiện, đây là một ví dụ tôi đưa ra:

Trước mọi truy vấn tôi chỉ có 2 chỉ mục, mặc định _idindexmecả hai đều có 0 ops:

> db.foo.aggregate( [ { $indexStats: { } } ] ).pretty()
{
    "name" : "indexme_1",
    "key" : {
        "indexme" : 1
    },
    "host" : "localhost:27017",
    "accesses" : {
        "ops" : NumberLong(0),
        "since" : ISODate("2016-01-12T19:03:01.358Z")
    }
}
{
    "name" : "_id_",
    "key" : {
        "_id" : 1
    },
    "host" : "localhost:27017",
    "accesses" : {
        "ops" : NumberLong(0),
        "since" : ISODate("2016-01-12T18:59:24.292Z")
    }
}

Sau đó chạy một vài kết quả để tìm các ops indexmevà kiểm tra lại:

> db.timecheck.find({indexme: 33})
> db.timecheck.find({indexme: 55})

> db.timecheck.aggregate( [ { $indexStats: { } } ] ).pretty()
{
    "name" : "indexme_1",
    "key" : {
        "indexme" : 1
    },
    "host" : "localhost:27017",
    "accesses" : {
        "ops" : NumberLong(2),
        "since" : ISODate("2016-01-12T19:03:01.358Z")
    }
}
{
    "name" : "_id_",
    "key" : {
        "_id" : 1
    },
    "host" : "localhost:27017",
    "accesses" : {
        "ops" : NumberLong(0),
        "since" : ISODate("2016-01-12T18:59:24.292Z")
    }
}

từ các tài liệu: "Đã thay đổi trong phiên bản 3.0: Đầu ra trạng thái máy chủ không còn bao gồm các phần Workset, indexCounters và recordStats." Còn ý tưởng nào khác không?
phục vụ
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.