Khi chạy các dịch vụ cơ sở dữ liệu quan trọng trong sản xuất, chúng ta cần biết và giám sát cơ sở dữ liệu. Bạn cần hiểu các chỉ số chính trong cơ sở dữ liệu mà bạn đang sử dụng. Ví dụ:khi bạn chạy MongoDB với công cụ lưu trữ WiredTiger, bạn cần biết các kết nối, xác thực, hoạt động, độ trễ sao chép, lỗi trang, khóa, v.v.
Trong blog này, chúng tôi sẽ giải thích một số số liệu chính được sử dụng để giám sát Máy chủ Percona cho MongoDB.
Kết nối Cơ sở dữ liệu
Kết nối cơ sở dữ liệu là một trong những số liệu chính quan trọng trong bất kỳ cơ sở dữ liệu nào. Nó giám sát các kết nối / luồng hiện tại của bạn từ các ứng dụng đến cơ sở dữ liệu. Bạn có thể kiểm tra các kết nối hiện tại thông qua lệnh dưới đây:
Kết nối> db.serverStatus().connections
Nó cung cấp ý tưởng về lượng ứng dụng của bạn đang truy cập vào cơ sở dữ liệu. Số lượng kết nối đột ngột tăng đột biến có thể gây ra sự cố cho máy chủ cơ sở dữ liệu của bạn. Nó có được mong đợi hay không ?.
ClusterControl cung cấp thông tin liên quan đến các kết nối như được hiển thị bên dưới:
Lệnh Hoạt động
Các chỉ số hoạt động lệnh giám sát các hoạt động hiện tại của bạn, chèn, cập nhật, xóa hoặc chọn. Bạn có thể theo dõi các hoạt động lệnh hiện tại bằng cách thực hiện lệnh dưới đây:
>db.serverStatus().opcounters
Từ các thao tác lệnh, bạn thực sự có thể thấy khối lượng công việc ứng dụng của mình, nó có nặng khi ghi hay đọc không. Từ quan điểm này, bạn có thể đưa ra một số quyết định, ví dụ:nếu bạn có lưu lượng đọc cao, bạn có thể muốn mở rộng các nút phụ để phân phối các truy vấn đã đọc.
Giám sát hoạt động lệnh trong ClusterControl rất đơn giản, bạn chỉ cần bật Giám sát dựa trên tác nhân để xem các số liệu OpsCounter trong bảng điều khiển Máy chủ MongoDB như được hiển thị bên dưới:
ReplicaSet L trễ
Khi bạn chạy kiến trúc ReplicaSet hoặc ShardCluster, một số liệu chính quan trọng là độ trễ sao chép. Độ trễ sao chép xảy ra khi các nút phụ không thể bắt kịp với dữ liệu được ghi vào nút chính. Các lý do cho điều này có thể khác nhau, từ độ trễ mạng, thông lượng đĩa, truy vấn chậm, v.v.
Bạn có thể kiểm tra thông tin về độ trễ của bản sao hiện tại bằng cách chạy lệnh dưới đây trên nút chính:
> rs.printSlaveReplicationInfo()
Số liệu thông tin về độ trễ tính bằng giây, vì vậy đối với các kết nối đồng thời nặng, nó có thể bị trễ vài giây trên các nút phụ vì bản sao trong mongodb là không đồng bộ.
Trong ClusterControl, có thể tìm thấy số liệu Trễ sao chép tối đa trong Bản sao MongoDB bảng điều khiển giám sát.
Lỗi Trang
Lỗi Trang chủ yếu xảy ra trong các ứng dụng tải cao và đồng thời cao. Lỗi trang xảy ra khi quá trình mongodb muốn lấy dữ liệu nhưng nó không có sẵn trong bộ nhớ, sau đó máy chủ mongodb đọc dữ liệu từ đĩa.
Để theo dõi trạng thái hiện tại của lỗi trang, bạn có thể sử dụng lệnh dưới đây:
>db.serverStatus().extra_info.page_faults
Nó cung cấp cho bạn số lỗi trang. Giá trị có thể tăng khi tải nặng và máy chủ có thể hoạt động kém. Bạn cũng có thể muốn kiểm tra nhật ký truy vấn chậm.
Khóa
Khóa cũng là một số liệu quan trọng trong MongoDB, nó thường xảy ra trong các ứng dụng tải cao với nhiều giao dịch trên cùng một tập dữ liệu. Việc khóa có thể gây ra các vấn đề nghiêm trọng về hiệu suất.
Bạn có thể kiểm tra các hoạt động khóa hiện tại trong cơ sở dữ liệu bằng lệnh dưới đây:
>db.currentOp()
Khi chúng ta chạy lệnh db.currentOp (), có một số thông tin liên quan đến việc khóa. ClusterControl giám sát Global Lock trong bảng điều khiển MongoDB của nó như được hiển thị bên dưới:
Kết luận
Đây là một số chỉ số chính quan trọng cần theo dõi trong Máy chủ Percona cho MongoDB. Chúng cung cấp chế độ xem thời gian thực về những gì đang diễn ra trong máy chủ và có thể phát hiện ra bất kỳ điểm bất thường nào mà bạn có thể thực hiện. ClusterControl cung cấp một số trang tổng quan giúp bạn hiển thị cơ sở dữ liệu MongoDB của mình.