Giám sát hiệu suất của cơ sở dữ liệu MySQL là công việc hàng ngày của hầu hết mọi DBA MySQL. Trong bài đăng trên blog này, chúng tôi sẽ cố gắng trình bày cách giám sát hiệu suất của cơ sở dữ liệu MySQL của bạn - với ClusterControl.
Bạn Cần Giám sát Điều gì?
Nói chung, nếu bạn đang theo dõi hiệu suất MySQL, bạn có thể nên cân nhắc theo dõi những điều sau:
- Quản lý truy vấn - giám sát hiệu suất các truy vấn của bạn có thể được chứng minh là một trong những cách hiệu quả nhất để cải thiện hiệu suất MySQL.
- Phát hiện ngoại lệ truy vấn - dữ liệu lịch sử có thể cho chúng ta biết rất nhiều điều:nó thậm chí có thể được sử dụng để tính toán hiệu suất truy vấn dự kiến dựa trên dữ liệu lịch sử, sau đó so sánh hiệu suất truy vấn hiện tại với hiệu suất dự kiến để phát hiện các ngoại lệ của truy vấn.
- Hiệu suất giản đồ cơ sở dữ liệu - ClusterControl có thể giúp bạn tối ưu hóa hiệu suất của các phiên bản MySQL bằng cách cung cấp thông tin chi tiết về lược đồ để đảm bảo các lược đồ được tối ưu hóa cho khối lượng công việc của bạn.
- Cân bằng tải - các trình cân bằng tải như ProxySQL, HAProxy hoặc MaxScale có thể làm cho cơ sở dữ liệu của bạn hoạt động tốt nhất trong khả năng của nó. Các bộ cân bằng tải đó có thể dễ dàng được triển khai bằng ClusterControl.
Cân bằng tải cơ sở dữ liệu và quản lý truy vấn bằng ClusterControl
ClusterControl hỗ trợ các bộ cân bằng tải sau:
- HAProxy
- MariaDB MaxScale
- ProxySQL
- Keepalived (chỉ địa chỉ IP ảo)
Xin lưu ý rằng ClusterControl phải nằm trên một nút độc lập, tách biệt với cụm cơ sở dữ liệu của bạn.
Liên quan đến quản lý truy vấn, ClusterControl cho phép bạn tiếp thu những điều sau (bạn có thể thấy những điều này sau khi bạn đã chuyển sang tab Giám sát truy vấn):
- Bạn có thể xem các truy vấn chạy chậm và chạy lâu hàng đầu.
- Bạn có thể xem danh sách các truy vấn hiện đang chạy.
- Bạn có thể xem danh sách các ngoại lệ truy vấn.
Tab này cung cấp cho bạn danh sách tổng hợp tất cả các truy vấn hàng đầu của bạn đang chạy trên tất cả các nút của cụm cơ sở dữ liệu của bạn. ClusterControl lấy thông tin theo một trong hai cách sau:
- Các truy vấn được truy xuất từ PERFORMANCE_SCHEMA hoặc
- Nếu PERFORMANCE_SCHEMA bị tắt hoặc không khả dụng, ClusterControl sẽ phân tích cú pháp nội dung của Nhật ký truy vấn chậm.
Nếu đang sử dụng Nhật ký Truy vấn Chậm, chỉ những truy vấn vượt quá Thời gian Truy vấn Dài mới được liệt kê tại đây.
Long Query Time thu thập các truy vấn mất nhiều thời gian hơn Long Query Time giây để thực thi (ví dụ:nếu Long Query Time là 0,1 thì chỉ các truy vấn mất hơn 0,1 giây để thực thi sẽ được ghi lại), “ truy vấn nhật ký không sử dụng chỉ mục? ” định cấu hình hành vi của ClusterControl liên quan đến các truy vấn không có chỉ mục, v.v.
Bảng truy vấn hàng đầu được tự động làm mới sau mỗi 30 giây (tốc độ làm mới có thể được thay đổi). Các cột trong bảng truy vấn hàng đầu chứa danh sách các truy vấn được lấy mẫu, tên cơ sở dữ liệu, tổng số lần xuất hiện truy vấn, số hàng liên quan đến hoạt động, số lượng bảng tạm thời được tạo cho một truy vấn nhất định, v.v. - danh sách các truy vấn hàng đầu tổng hợp cũng có thể được sắp xếp theo Thời gian xảy ra hoặc Thời gian thực hiện để hiển thị các truy vấn phổ biến nhất hoặc chậm nhất.
ClusterControl cũng cho phép bạn xem danh sách các truy vấn hiện đang chạy. Trang này cũng được tự động làm mới sau mỗi 30 giây và nó hiển thị:
- Máy chủ MySQL mà quá trình được truy xuất từ đó.
- ID kết nối.
- Tên cơ sở dữ liệu.
- Người dùng MySQL đã đưa ra tuyên bố.
- Thời gian thực thi chuỗi MySQL tính bằng giây.
- Tên máy chủ của ứng dụng khách phát hành câu lệnh.
- Loại lệnh mà luồng đang thực thi.
- Trạng thái của luồng (như được giải thích trong tài liệu MySQL)
Trang ngoại lệ của truy vấn hiển thị các truy vấn được coi là "ngoại lệ". Nói cách khác, trang này hiển thị tất cả các truy vấn mất nhiều thời gian hơn để thực thi so với truy vấn thông thường thuộc loại đó, lâu hơn được định nghĩa là độ lệch độ trễ của 2 sigmas + average_query_time. Trang này hiển thị:
- Thời gian chính xác truy vấn được ghi lại.
- Chính truy vấn.
- Thời gian thực thi truy vấn SQL.
- Thời gian thực thi trung bình của truy vấn SQL.
- Thời gian thực hiện độ lệch chuẩn (micro giây).
- Thời gian thực thi tối đa của truy vấn (micro giây).
- Thời gian khóa của truy vấn (micro giây).
Tab giám sát truy vấn cung cấp tóm tắt quá trình xử lý truy vấn trên tất cả các nút trong cụm.
Tóm tắt
Khi nói đến việc theo dõi hiệu suất của cơ sở dữ liệu MySQL của bạn, ClusterControl có thể làm nên điều kỳ diệu. ClusterControl có thể làm cho việc triển khai các bộ cân bằng tải trở nên đơn giản, nó có thể giúp bạn dễ dàng quản lý các truy vấn của mình và theo dõi hiệu suất của chúng, ClusterControl cũng có thể tính toán hiệu suất truy vấn dự kiến dựa trên dữ liệu lịch sử.