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

ClusterControl Hiệu suất và Giám sát Sức khỏe

Trong hai bài đăng trên blog trước, chúng tôi đã đề cập đến cả việc triển khai bốn loại phân cụm / nhân bản (MySQL / Galera, MySQL Replication, MongoDB &PostgreSQL) và quản lý / giám sát các cơ sở dữ liệu và cụm hiện có của bạn. Vì vậy, sau khi đọc hai bài đăng blog đầu tiên này, bạn đã có thể thêm 20 thiết lập sao chép hiện có của mình vào ClusterControl, mở rộng chúng và triển khai thêm hai cụm Galera mới trong khi thực hiện rất nhiều việc khác. Hoặc có thể bạn đã triển khai hệ thống MongoDB và / hoặc PostgreSQL. Vậy bây giờ, bạn làm cách nào để giữ chúng khỏe mạnh?

Đó chính xác là nội dung của bài đăng blog này:cách tận dụng chức năng giám sát hiệu suất và cố vấn của ClusterControl để giữ cho cơ sở dữ liệu và cụm cơ sở dữ liệu MySQL, MongoDB và / hoặc PostgreSQL của bạn hoạt động tốt. Vậy điều này được thực hiện như thế nào trong ClusterControl?

Danh sách cụm cơ sở dữ liệu

Thông tin quan trọng nhất có thể được tìm thấy trong danh sách cụm:miễn là không có báo động và không có máy chủ nào bị ngừng hoạt động, mọi thứ vẫn hoạt động tốt. Báo động sẽ được nâng lên nếu một điều kiện nhất định được đáp ứng, ví dụ:máy chủ đang hoán đổi và lưu ý đến bạn vấn đề bạn nên điều tra. Điều đó có nghĩa là cảnh báo không chỉ được nâng lên khi cúp điện mà còn cho phép bạn chủ động quản lý cơ sở dữ liệu của mình.

Giả sử bạn đăng nhập vào ClusterControl và thấy một danh sách cụm như thế này, chắc chắn bạn sẽ có điều gì đó để điều tra:một nút trong cụm Galera chẳng hạn và mỗi cụm đều có các cảnh báo khác nhau:

Khi bạn nhấp vào một trong các cảnh báo, bạn sẽ chuyển đến trang chi tiết về tất cả các cảnh báo của cụm. Chi tiết cảnh báo sẽ giải thích sự cố và trong hầu hết các trường hợp, cũng cho biết hành động để giải quyết sự cố.

Bạn có thể thiết lập cảnh báo của riêng mình bằng cách tạo biểu thức tùy chỉnh, nhưng điều đó đã không còn được dùng nữa vì Developer Studio mới của chúng tôi cho phép bạn viết Javascrip tùy chỉnh và thực thi chúng với tư cách là Cố vấn. Chúng ta sẽ quay lại chủ đề này sau trong bài đăng này.

Tổng quan về cụm - Trang tổng quan

Khi mở tổng quan về cụm, chúng ta có thể thấy ngay các chỉ số hiệu suất quan trọng nhất cho cụm trong các tab. Tổng quan này có thể khác nhau đối với mỗi loại cụm, chẳng hạn như Galera có các chỉ số hiệu suất khác nhau để xem so với MySQL, PostgreSQL hoặc MongoDB truyền thống.

Cả tổng quan mặc định và các tab được chọn trước đều có thể tùy chỉnh. Bằng cách nhấp vào Tổng quan -> Cài đặt dấu gạch ngang bạn được cung cấp một hộp thoại cho phép bạn xác định trang tổng quan:

Bằng cách nhấn vào dấu cộng, bạn có thể thêm và xác định các chỉ số của riêng mình để vẽ biểu đồ cho trang tổng quan. Trong trường hợp của chúng tôi, chúng tôi sẽ xác định một trang tổng quan mới có tính năng trung bình hàng đợi gửi và nhận cụ thể của Galera:

Trang tổng quan mới này sẽ cung cấp cho chúng tôi thông tin chi tiết tốt về độ dài hàng đợi trung bình của cụm Galera của chúng tôi.

Khi bạn đã nhấn lưu, trang tổng quan mới sẽ có sẵn cho cụm này:

Tương tự như vậy, bạn cũng có thể làm điều này cho PostgreSQL, ví dụ:chúng tôi có thể giám sát các khối được chia sẻ lần truy cập so với các khối đã đọc:

Vì vậy, như bạn có thể thấy, tương đối dễ dàng tùy chỉnh trang tổng quan (mặc định) của riêng bạn.

Tổng quan về cụm - Giám sát truy vấn

Tab Giám sát truy vấn có sẵn cho cả thiết lập dựa trên MySQL và PostgreSQL và bao gồm ba bảng điều khiển:Truy vấn hàng đầu, Truy vấn đang chạy và Ngoại lệ truy vấn.

Trong bảng điều khiển Truy vấn Đang chạy, bạn sẽ tìm thấy tất cả các truy vấn hiện tại đang chạy. Về cơ bản, điều này tương đương với câu lệnh SHOW FULL PROCESSLIST trong cơ sở dữ liệu MySQL.

Truy vấn hàng đầu và Ngoại lệ truy vấn đều dựa vào đầu vào của nhật ký truy vấn chậm hoặc Lược đồ hiệu suất. Sử dụng Lược đồ hiệu suất luôn được khuyến khích và sẽ được sử dụng tự động nếu được bật. Nếu không, ClusterControl sẽ sử dụng nhật ký truy vấn chậm MySQL để nắm bắt các truy vấn đang chạy. Để ngăn ClusterControl quá xâm nhập và nhật ký truy vấn chậm phát triển quá lớn, ClusterControl sẽ lấy mẫu nhật ký truy vấn chậm bằng cách bật và tắt nó. Vòng lặp này theo mặc định được đặt thành chụp 1 giây và long_query_time được đặt thành 0,5 giây. Nếu bạn muốn thay đổi các cài đặt này cho cụm của mình, bạn có thể thay đổi cài đặt này qua Cài đặt -> Giám sát truy vấn .

Các truy vấn hàng đầu, giống như tên gọi, sẽ hiển thị các truy vấn hàng đầu đã được lấy mẫu. Bạn có thể sắp xếp chúng trên các cột khác nhau:ví dụ:tần suất, thời gian thực hiện trung bình, tổng thời gian thực hiện hoặc thời gian độ lệch chuẩn:

Bạn có thể biết thêm chi tiết về truy vấn bằng cách chọn nó và điều này sẽ trình bày kế hoạch thực thi truy vấn (nếu có) và các gợi ý / tư vấn tối ưu hóa. Các ngoại lệ truy vấn tương tự như các Truy vấn hàng đầu nhưng sau đó cho phép bạn lọc các truy vấn trên mỗi máy chủ và so sánh chúng trong thời gian.

Tổng quan về Cụm - Hoạt động

Tương tự như các hệ thống PostgreSQL và MySQL, các cụm MongoDB có tổng quan về Hoạt động và tương tự như các Truy vấn đang chạy của MySQL. Tổng quan này tương tự như việc phát hành lệnh db.currentOp () trong MongoDB.

Tổng quan về cụm - Hiệu suất

MySQL / Galera

Tab hiệu suất có lẽ là nơi tốt nhất để tìm hiệu suất tổng thể và tình trạng hoạt động của các cụm của bạn. Đối với MySQL và Galera, nó bao gồm trang Tổng quan, Cố vấn, tổng quan về trạng thái / biến, Trình phân tích lược đồ và Nhật ký giao dịch.

Trang Tổng quan sẽ cung cấp cho bạn tổng quan về biểu đồ về các chỉ số quan trọng nhất trong cụm của bạn. Điều này rõ ràng là khác nhau cho mỗi loại cụm. Tám số liệu đã được đặt theo mặc định, nhưng bạn có thể dễ dàng đặt số liệu của riêng mình - tối đa 20 biểu đồ nếu cần:

Advisors là một trong những tính năng chính của ClusterControl:Advisors là những kiểm tra theo kịch bản có thể chạy theo yêu cầu. Các cố vấn có thể đánh giá hầu hết mọi thông tin đã biết về máy chủ và / hoặc cụm và đưa ra ý kiến ​​của họ về tình trạng của máy chủ và / hoặc cụm và thậm chí có thể đưa ra lời khuyên về cách giải quyết vấn đề hoặc cải thiện máy chủ của bạn!

Phần tốt nhất vẫn chưa đến:bạn có thể tạo séc của riêng mình trong Developer Studio ( ClusterControl -> Manage -> Developer Studio ), chạy chúng một cách đều đặn và sử dụng lại chúng trong phần Cố vấn. Chúng tôi đã viết blog về tính năng mới này vào đầu năm nay.

Chúng tôi sẽ bỏ qua tổng quan về trạng thái / biến của MySQL và Galera vì điều này hữu ích cho việc tham khảo nhưng không hữu ích cho bài đăng blog này:đủ tốt để bạn biết nó ở đây.

Bây giờ, giả sử cơ sở dữ liệu của bạn đang phát triển nhưng bạn muốn biết nó đã tăng nhanh như thế nào trong tuần qua. Bạn thực sự có thể theo dõi sự phát triển của cả kích thước dữ liệu và chỉ mục ngay trong ClusterControl:

Và bên cạnh tổng mức tăng trưởng trên đĩa, nó cũng có thể báo cáo lại 25 lược đồ lớn nhất hàng đầu.

Một tính năng quan trọng khác là Trình phân tích lược đồ trong ClusterControl:

ClusterControl sẽ phân tích các lược đồ của bạn và tìm kiếm các chỉ mục dư thừa, bảng MyISAM và bảng không có khóa chính. Tất nhiên, việc giữ một bảng không có khóa chính là hoàn toàn tùy thuộc vào bạn vì một số ứng dụng có thể đã tạo nó theo cách này, nhưng ít nhất thì thật tuyệt khi nhận được lời khuyên miễn phí tại đây. Trình phân tích lược đồ thậm chí còn đề xuất câu lệnh ALTER cần thiết để khắc phục sự cố.

PostgreSQL

Đối với PostgreSQL, có thể tìm thấy Advisors, DB Status và DB Variable tại đây:

MongoDB

Đối với MongoDB, bạn có thể tìm thấy tổng quan về Hiệu suất và Thống kê Mongo trong tab Hiệu suất. Mongo Stats là tổng quan về đầu ra của mongostat và tổng quan về Hiệu suất cung cấp cái nhìn tổng quan về đồ họa tốt về các opcounters của MongoDB:

Lời kết

Chúng tôi đã hướng dẫn bạn cách giữ cho nhãn cầu của bạn sử dụng các tính năng theo dõi và kiểm tra sức khỏe quan trọng nhất của ClusterControl. Rõ ràng đây mới chỉ là bước khởi đầu vì chúng tôi sẽ sớm bắt đầu một loạt blog khác về các khả năng của Developer Studio và cách bạn có thể thực hiện hầu hết các kiểm tra của riêng mình. Cũng nên nhớ rằng sự hỗ trợ của chúng tôi cho MongoDB và PostgreSQL không rộng rãi như bộ công cụ MySQL của chúng tôi, nhưng chúng tôi đang liên tục cải thiện vấn đề này.

Bạn có thể tự hỏi tại sao chúng tôi đã bỏ qua việc theo dõi hiệu suất và kiểm tra sức khỏe của HAProxy, ProxySQL và MaxScale. Chúng tôi đã cố tình làm điều đó vì loạt blog chỉ đề cập đến việc triển khai các cụm cho đến nay chứ không phải việc triển khai các thành phần HA. Vì vậy, đó là chủ đề chúng ta sẽ đề cập trong lần tới.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tổng hợp theo múi giờ địa phương trong mongodb

  2. MongoDB:Sử dụng khớp với các biến tài liệu đầu vào

  3. Mongodb đếm tất cả các phần tử mảng trong tất cả các đối tượng khớp theo tiêu chí

  4. Làm thế nào để triển khai has_many:thông qua các mối quan hệ với Mongoid và mongodb?

  5. Kết nối cơ sở dữ liệu động với mongodb hoặc mongoose từ nodejs