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ó 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:
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 $indexStats
toá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 _id
và indexme
cả 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 indexme
và 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")
}
}