Hiệu suất trong cơ sở dữ liệu MariaDB của chúng tôi là một trong những lĩnh vực chúng tôi muốn theo dõi và quan sát chặt chẽ trong môi trường sản xuất và điều kiện hoạt động kịp thời của nó. Nó có thể đòi hỏi rất cao về thời gian, công việc và tiền bạc nếu thiết lập kiến trúc sử dụng Đám mây lai. Không chỉ vậy, có những khu vực nhất định cần xem xét, đặc biệt là mạng trung gian phục vụ kết nối của nó như một đám mây tại chỗ hoặc một đám mây riêng giao tiếp với đám mây công cộng (GCP, AWS, Azure, v.v.) và ngược lại .
Blog này là tất cả về việc theo dõi hiệu suất của cơ sở dữ liệu MariaDB của bạn trên cơ sở hạ tầng Đám mây kết hợp. Chúng tôi sẽ cung cấp cho bạn những điều cơ bản và các chỉ báo chính quan trọng nhất khi theo dõi hiệu suất cơ sở dữ liệu MariaDB của bạn trong thiết lập đám mây kết hợp.
Tại sao Bạn Cần Giám sát Hiệu suất?
Trên Đám mây kết hợp, việc theo dõi từng dịch vụ bạn sử dụng có thể phức tạp. Không giống như trung tâm dữ liệu của riêng bạn hoặc đám mây riêng của bạn, bạn có toàn quyền kiểm soát cơ sở hạ tầng phần cứng và phần mềm. Với đám mây công cộng, có những giới hạn đối với các dịch vụ bạn đã đấu thầu và có thể phải trả thêm phí nếu bạn muốn các dịch vụ khác nhau cung cấp cho bạn các chỉ số và nhật ký. Bảo mật cũng là một mối quan tâm liên quan đến dữ liệu bí mật của bạn đang được thu thập.
Giám sát Hiệu suất giúp xác định mức độ hiệu quả và tốc độ cơ sở dữ liệu của bạn đang chạy trên đám mây, tại chỗ hoặc đám mây riêng hoặc công cộng. Trên thực tế, một tập hợp các quy trình và công cụ đã được thử nghiệm và dựa trên kết quả sẽ cung cấp cho bạn các chỉ số thời gian thực hoặc định kỳ.
Trong một đám mây lai, không phải tất cả các công cụ giám sát phần mềm đều được xây dựng để quản lý các chỉ số chính cần được quan sát và giám sát. Bạn nên có ý tưởng và kiến thức để xác định các chỉ số và yêu cầu cần thiết mà công cụ có thể cung cấp. Với một đám mây lai, dự kiến rằng bản chất của cách hoạt động của một đám mây lai có thể phức tạp. Các dịch vụ được phân phối cao và trộn lẫn với các dịch vụ khác mà không chỉ bị ràng buộc với một nhà cung cấp.
Về mặt đó, phần mềm giám sát của bạn có những đặc điểm này và nó cũng có khả năng xác định và phân tách nó thuộc về đám mây nào. Phần mềm hoặc công cụ giám sát phải có khả năng giải quyết các nút thắt cổ chai, các vấn đề bảo mật, độ trễ, cung cấp khả năng mở rộng, thông báo về các vấn đề đang diễn ra và đưa ra các dự đoán. Dự đoán có thể tránh những hậu quả khác có thể dẫn đến thảm họa hoặc ảnh hưởng đến hiệu quả của cơ sở dữ liệu MariaDB của bạn. Điều này giúp toàn bộ nhóm bao gồm kỹ sư cơ sở hạ tầng, kỹ sư cơ sở dữ liệu, quản trị viên máy chủ và nhà phát triển đảm bảo rằng các máy chủ cơ sở dữ liệu hoạt động tốt và đang chạy ở mức độ mong đợi của nó.
Những Điều Cần Xem xét để Giám sát Cơ sở dữ liệu
Khi giám sát cụm cơ sở dữ liệu MariaDB (bản sao hoặc Galera) hoặc nút của bạn, có hai điều chính cần tính đến:hệ điều hành và chính cơ sở dữ liệu. Bạn sẽ cần xác định những chỉ số nào bạn sẽ theo dõi từ cả hai phía và cách bạn sẽ thực hiện điều đó. Bạn cần luôn theo dõi số liệu trong ngữ cảnh hệ thống của mình và bạn nên tìm kiếm những thay đổi trong mẫu hành vi.
Trong hầu hết các trường hợp, bạn sẽ cần sử dụng một số công cụ (vì gần như không thể tìm thấy một công cụ để bao gồm tất cả các số liệu mong muốn.)
Hãy nhớ rằng khi một trong các chỉ số của bạn bị ảnh hưởng, chỉ số đó cũng có thể ảnh hưởng đến những chỉ số khác, khiến việc khắc phục sự cố trở nên phức tạp hơn. Có một hệ thống cảnh báo và giám sát tốt là điều quan trọng để làm cho nhiệm vụ này trở nên đơn giản nhất có thể.
Luôn Giám sát Hoạt động Máy chủ của Bạn (Mạng, Đĩa, Tải, Bộ nhớ và CPU)
Giám sát hoạt động máy chủ của bạn cũng có thể là một nhiệm vụ phức tạp nếu bạn có một ngăn xếp rất phức tạp đan xen trong kiến trúc cơ sở dữ liệu của mình. Tuy nhiên, đối với cơ sở dữ liệu MariaDB, tốt nhất là luôn thiết lập các nút của bạn như một máy chủ chuyên dụng để có được toàn bộ nội dung trên cơ sở nút. Mặc dù điều đó không hạn chế bạn sử dụng tất cả các tài nguyên dự phòng, nhưng dưới đây là các lĩnh vực chính phổ biến mà bạn phải xem xét.
Mạng
Trên cơ sở hạ tầng Đám mây kết hợp, đó là một trong những mối quan tâm quan trọng nhất cần xem xét khi bạn phải tính đến loại thiết kế và cách nó giao tiếp từ đám mây tại chỗ hoặc đám mây riêng với đám mây công cộng và ngược lại. Dù bằng cách nào, bạn có một trong các cụm hoặc nút chuyên biệt hóa vai trò của nó như một cơ quan chính để nhận các ghi hoặc nó phục vụ như phục hồi sau thảm họa. Về vấn đề đó, bạn không muốn các nút khôi phục của mình có độ trễ, tệ hơn là nó có độ trễ sao chép lớn. Bất cứ khi nào nó bị trễ và khi cụm chính từ một đám mây cụ thể (giả sử tại chỗ của bạn) gặp sự cố, đám mây công cộng của bạn phải tiếp quản nhưng sẽ có thể cung cấp dữ liệu cập nhật nhất. Bất cứ khi nào điều này có thể xảy ra, bạn có thể phải thêm cơ chế chuyển đổi dự phòng trước để xử lý các bản sao lưu gia tăng hoặc PITR trong trường hợp một số giao dịch hoặc ghi chưa được áp dụng trong cụm khôi phục của bạn (hoặc trong trường hợp này là cụm đám mây công cộng của bạn).
Nếu bạn đang sử dụng Galera, vì MariaDB đã nâng cấp Galera lên phiên bản 4, tính năng sao chép trực tuyến được thêm vào như một trong những tính năng chính và những thay đổi so với phiên bản trước. Vì tính năng sao chép trực tuyến giải quyết những hạn chế mà nó có trong các bản phát hành trước nhưng cho phép nó quản lý hơn 2GB bộ ghi kể từ Galera Cluster 4. Điều này cho phép các giao dịch lớn được phân mảnh và bạn nên bật tính năng này chỉ trong cấp phiên. Điều này có nghĩa là, việc giám sát hoạt động mạng của bạn là rất quan trọng và cốt yếu đối với hoạt động bình thường của Cụm MariaDB của bạn. Điều này sẽ giúp bạn xác định nút nào có lưu lượng mạng nhiều nhất hoặc cao nhất dựa trên khoảng thời gian.
Một ví dụ điển hình về hiển thị giám sát mạng là sử dụng ClusterControl. Nó xác định từng nút và cung cấp tổng quan về hoạt động mạng của nó trên mỗi nút bất kể nút đó nằm ở đám mây nào. Xem ảnh chụp màn hình bên dưới:
CPU, Bộ nhớ và Hoạt động tải
Hãy để tôi trình bày ngắn gọn ba lĩnh vực này cần xem xét khi giám sát. Trong phần này, tốt nhất bạn nên có khả năng quan sát tốt hơn các khu vực sau cùng một lúc. Nó nhanh chóng, dễ hiểu và giúp loại trừ tắc nghẽn hiệu suất hoặc xác định các lỗi khiến các nút của bạn bị đình trệ hoặc ảnh hưởng đến các nút khác hoặc thậm chí có khả năng một cụm bị ngừng hoạt động.
Vậy CPU, bộ nhớ và hoạt động tải khi giám sát sẽ giúp MariaDB của bạn như thế nào? Như tôi đã đề cập ở trên, đó là một trong số ít những yếu tố quan trọng đối với việc kiểm tra định kỳ hàng ngày. Bây giờ, điều này cũng giúp bạn xác định xem đây là sự xuất hiện định kỳ hay ngẫu nhiên. Nếu định kỳ, nó có thể liên quan đến các bản sao lưu đang chạy ở một trong các nút cơ sở dữ liệu MariaDB của bạn hoặc đó là một truy vấn lớn yêu cầu tối ưu hóa. Ví dụ:các truy vấn không hợp lệ không có chỉ mục thích hợp hoặc sử dụng truy xuất dữ liệu trong số dư, chẳng hạn như thực hiện so sánh chuỗi cho một chuỗi lớn như vậy. Điều đó không thể phủ nhận là không thể áp dụng được đối với cơ sở dữ liệu kiểu OLTP, đặc biệt nếu nó thực sự là bản chất và yêu cầu của ứng dụng của bạn. Sử dụng tốt hơn các công cụ phân tích khác như MariaDB Columnstore hoặc các công cụ xử lý phân tích của bên thứ ba khác (Apache Spark, Kafka hoặc MongoDB, v.v.) để truy xuất dữ liệu chuỗi lớn và / hoặc khớp chuỗi.
Vì vậy, với tất cả các lĩnh vực chính đang được giám sát, câu hỏi đặt ra là nó sẽ được giám sát như thế nào? Nó phải được theo dõi ít nhất mỗi phút. Với tính năng giám sát tinh chỉnh, tức là mỗi giây của các số liệu chung có thể tốn nhiều tài nguyên và tham lam nhiều về tài nguyên của bạn. Mặc dù tính năng tập hợp kéo dài nửa phút có thể chấp nhận được, đặc biệt nếu dữ liệu và RPO (mục tiêu điểm khôi phục) của bạn rất thấp, vì vậy bạn cần các chỉ số dữ liệu thời gian thực và chi tiết hơn. Điều rất quan trọng là bạn có thể giám sát toàn bộ bức tranh về cụm cơ sở dữ liệu của mình. Bên cạnh đó, điều tốt nhất và quan trọng là bất cứ khi nào bạn đang theo dõi chỉ số nào, bạn có công cụ phù hợp để thu hút sự chú ý của mình khi mọi thứ đang gặp nguy hiểm hoặc thậm chí chỉ là cảnh báo. Sử dụng công cụ thích hợp như ClusterControl giúp bạn quản lý các khu vực chính cần được giám sát. Tôi đang sử dụng phiên bản miễn phí hoặc phiên bản cộng đồng của ClusterControl giúp tôi giám sát các nút của mình mà không gặp bất kỳ rắc rối nào từ việc cài đặt đến giám sát các nút chỉ bằng một vài cú nhấp chuột. Ví dụ:xem ảnh chụp màn hình bên dưới:
Nó cũng cung cấp cơ sở mỗi nút với tổng quan về đồ thị đơn giản,
hoặc với mô hình dữ liệu phong phú và mạnh mẽ hơn cũng hỗ trợ ngôn ngữ truy vấn sử dụng Prometheus, có thể cung cấp cho bạn phân tích về cách cơ sở dữ liệu MariaDB của bạn hoạt động dựa trên dữ liệu lịch sử so sánh hiệu suất của nó một cách kịp thời. Ví dụ:
Điều đó chỉ cung cấp cho bạn các chỉ số rõ ràng hơn. Vì vậy, bạn thấy tầm quan trọng của việc có đúng công cụ khi theo dõi cơ sở dữ liệu MariaDB của bạn trong Đám mây lai.
Giám sát tập thể các biến thống kê MariaDB của bạn
Theo thời gian, không thể tránh khỏi việc các phiên bản cơ sở dữ liệu MariaDB sẽ tạo ra số liệu thống kê mới để theo dõi hoặc nâng cao tính chất của việc giám sát cơ sở dữ liệu bằng cách cung cấp thêm các biến trạng thái và tinh chỉnh các giá trị để xem xét.
Số byte Đã gửi / Đã nhận
Các byte được gửi hoặc nhận tương quan với hoạt động mạng và là một trong những lĩnh vực chính cần xem xét song song, đặc biệt là trong cấu trúc liên kết đám mây lai. Điều này cho phép bạn xác định nút nào bị ảnh hưởng nhiều nhất hoặc do các vấn đề về hiệu suất đang gặp phải trong cơ sở dữ liệu MariaDB của bạn. Điều rất quan trọng là bạn có thể kiểm tra xem có thể có bất kỳ sự xuống cấp nào về phần cứng chẳng hạn như thiết bị mạng của bạn hoặc thiết bị lưu trữ bên dưới mà việc đồng bộ hóa các trang bẩn có thể mất quá nhiều thời gian để được thực hiện hay không.
Xem ảnh chụp màn hình mẫu,
Tải theo cụm
Đây là hoạt động nhiều hơn của cơ sở dữ liệu về số lượng thay đổi hoặc truy xuất dữ liệu đã được truy vấn hoặc thực hiện cho đến nay kể từ thời gian hoạt động của máy chủ. Nó giúp bạn loại trừ những loại truy vấn nào ảnh hưởng chủ yếu đến hiệu suất cụm cơ sở dữ liệu của bạn. Điều này cho phép bạn cung cấp chỗ để cải thiện, đặc biệt là cân bằng tải các yêu cầu cơ sở dữ liệu của bạn.
Như vậy, có rất nhiều biến cần xem xét trong máy chủ cơ sở dữ liệu MariaDB. Điều quan trọng nhất ở đây bạn phải tính đến là công cụ bạn đang sử dụng để giám sát cụm cơ sở dữ liệu của mình. Với ClusterControl (Community Edition), nó cung cấp cho tôi nhiều cách hơn với sự linh hoạt để xem xét trong cơ sở dữ liệu MariaDB. Xem ví dụ bên dưới,
Sau đó, bạn cũng có thể chọn từ trình đơn thả xuống để xem các biến khác,
Điều này rất hữu ích và giúp bạn xác định ví dụ như trong cấu trúc liên kết sao chép trong một đám mây lai. Bạn có thể xem tổng quan nhanh về trạng thái và hiệu suất liên quan đến mạng cũng như các con trỏ biến khác để xem xét và kiểm tra đâu là nút cổ chai sẽ ảnh hưởng đến hiệu suất MariaDB của bạn trong cấu trúc liên kết đám mây lai. Bạn có thể xác định xem ứng dụng của mình có tham lam với việc ghi hay không, sau đó việc nhân rộng và truyền mạng bị ảnh hưởng, bạn có thể nhận được hoạt động liên cụm trong hai hoặc nhiều hạ tầng đám mây. Tốt nhất là xác định xem các nút của bạn có thể xử lý căng thẳng như thế nào. Đặc biệt là trong quá trình kiểm tra căng thẳng trước khi đẩy các thay đổi cụ thể trong ứng dụng của bạn, tốt nhất bạn nên thử và kiểm tra để xác định khả năng quản lý năng lực của sản phẩm ứng dụng và xác định xem thiết kế và nút cơ sở dữ liệu hiện tại của bạn có thể xử lý tải các yêu cầu ứng dụng của bạn hay không.
Để có chỉ số dữ liệu phong phú và chi tiết hơn, bạn có thể nhận được nhiều dữ liệu hơn bằng cách sử dụng giám sát dựa trên tác nhân. Xem bên dưới,
Đây là cách bạn tiếp cận việc giám sát Cụm MariaDB của mình. Một hình ảnh trực quan hoàn hảo luôn dễ dàng và nhanh chóng hơn để quản lý. Khi mọi thứ đi xuống, bạn không thể để mất năng suất và thời gian ngừng hoạt động cũng có thể ảnh hưởng đến công việc kinh doanh của bạn. Mặc dù có một phiên bản miễn phí không cung cấp cho bạn sự sang trọng và thoải mái khi quản lý cơ sở dữ liệu lưu lượng truy cập cao; có báo thức, thông báo và quản lý cơ sở dữ liệu trong một khu vực là tiện ích bổ sung mà ClusterControl có thể làm.
Kết luận
Việc giám sát các máy chủ cơ sở dữ liệu MariaDB của bạn trong môi trường đám mây kết hợp không phải là điều dễ dàng và nó cũng phức tạp, đặc biệt là khi có rất nhiều dịch vụ và các mối quan hệ phức tạp hình thành nên toàn bộ công nghệ của bạn. Sử dụng các công cụ phù hợp để giám sát giúp bạn quản lý ứng dụng của mình một cách hiệu quả và đồng thời cải thiện năng suất. Ngoài ra, với các công cụ giám sát phù hợp trong tay, bạn sẽ có nhiều thời gian hơn để tập trung vào việc cải thiện các ứng dụng của mình cùng với các quy trình kinh doanh khác.