Percona XtraDB Cluster là một giải pháp có tính khả dụng cao rất nổi tiếng trong thế giới MySQL. Nó dựa trên Galera Cluster và nó cung cấp tính năng sao chép hầu như đồng bộ trên nhiều nút. Như với mọi cơ sở dữ liệu, điều quan trọng là phải theo dõi những gì đang xảy ra trong hệ thống, nếu hiệu suất ở mức mong đợi và nếu không, nút cổ chai là gì. Điều này là cực kỳ quan trọng để có thể phản ứng đúng trong tình huống mà hiệu suất bị ảnh hưởng. Tất nhiên, Percona XtraDB Cluster đi kèm với nhiều số liệu và không phải lúc nào cũng rõ ràng đâu là chỉ số quan trọng nhất để theo dõi trạng thái của cơ sở dữ liệu. Trong blog này, chúng tôi sẽ thảo luận về một số chỉ số chính mà bạn muốn theo dõi khi làm việc với PXC.
Để làm rõ hơn, chúng tôi sẽ tập trung vào các số liệu duy nhất cho PXC và Galera, chúng tôi sẽ không đề cập đến các số liệu cho MySQL hoặc InnoDB. Những số liệu đó đã được thảo luận trong các blog trước đây của chúng tôi.
Hãy cùng xem qua một số thông tin quan trọng nhất mà PXC trình bày cho chúng ta.
Kiểm soát luồng
Kiểm soát luồng là chỉ số quan trọng nhất mà bạn có thể theo dõi trong bất kỳ Cụm Galera nào, do đó chúng ta hãy có một chút thông tin cơ bản. Galera là một cụm đa tổng thể, hầu như đồng bộ. Có thể thực hiện ghi trên bất kỳ nút cơ sở dữ liệu nào tạo thành nó. Mọi ghi phải được gửi đến tất cả các nút trong cụm để đảm bảo rằng nó có thể được áp dụng - quá trình này được gọi là chứng nhận. Không có giao dịch nào có thể được áp dụng trước khi tất cả các nút đồng ý rằng nó có thể được cam kết. Nếu bất kỳ nút nào trong số các nút có vấn đề về hiệu suất khiến nó không thể đối phó với lưu lượng truy cập, nó sẽ bắt đầu phát hành các thông báo điều khiển luồng nhằm thông báo cho phần còn lại của cụm về các vấn đề hiệu suất và yêu cầu họ giảm khối lượng công việc và giúp đỡ những người bị trì hoãn để bắt kịp phần còn lại của cụm.
Bạn có thể theo dõi thời điểm các nút phải thực hiện tạm dừng nhân tạo để các nút bị tụt lại bắt kịp bằng cách sử dụng số liệu bị tạm dừng kiểm soát luồng (wsrep_flow_control_paused):
Bạn cũng có thể theo dõi xem nút đang gửi hoặc nhận thông báo điều khiển luồng (wsrep_flow_control_recv và wsrep_flow_control_sent).
Thông tin này sẽ giúp bạn hiểu rõ hơn nút nào không hoạt động trên cùng một cấp như các đồng nghiệp của nó. Sau đó, bạn có thể tập trung vào nút đó và cố gắng hiểu vấn đề là gì và cách loại bỏ nút thắt cổ chai.
Gửi và Nhận Hàng đợi
Các chỉ số đó có liên quan đến kiểm soát luồng. Như chúng ta đã thảo luận, một nút có thể bị tụt hậu so với các nút khác trong cụm. Nó có thể được gây ra bởi sự phân chia khối lượng công việc không đồng đều hoặc do các lý do khác (một số quá trình chạy trong nền, sao lưu hoặc một số truy vấn tùy chỉnh, nặng). Trước khi điều khiển luồng bắt đầu, các nút trễ sẽ cố gắng lưu trữ các tập ghi đến trong hàng đợi nhận (wsrep_local_recv_queue) với hy vọng rằng tác động đến hiệu suất là thoáng qua và nó sẽ có thể bắt kịp rất sớm. Chỉ khi hàng đợi trở nên quá lớn (nó được điều chỉnh bởi cài đặt gcs.fc_limit), thông báo điều khiển luồng mới bắt đầu được gửi qua cụm.
Bạn có thể coi hàng đợi nhận là điểm đánh dấu ban đầu cho thấy rằng ở đó có vấn đề với hiệu suất và kiểm soát luồng có thể bắt đầu.
Mặt khác, hàng đợi gửi (wsrep_local_send_queue) sẽ cho bạn biết rằng nút không thể gửi các tập ghi tới các thành viên khác của cụm, điều này có thể chỉ ra sự cố với kết nối mạng (đẩy các tập ghi tới mạng không thực sự sử dụng nhiều tài nguyên).
Số liệu song song
Percona XtraDB cluster có thể được định cấu hình để sử dụng nhiều luồng để áp dụng các tập ghi đến - nó cho phép nó xử lý tốt hơn nhiều luồng kết nối với cụm và phát hành các ghi cùng một lúc. Có hai số liệu chính mà bạn có thể muốn theo dõi.
Đầu tiên, wsrep_cert_deps_distance, cho chúng ta biết tiềm năng song song hóa là gì - có thể áp dụng bao nhiêu bộ ghi cùng một lúc. Dựa trên giá trị này, bạn có thể định cấu hình số luồng phụ song song (wsrep_slave_threads) sẽ hoạt động khi áp dụng các tập ghi đến. Quy tắc chung là không có ích lợi gì khi định cấu hình nhiều luồng hơn giá trị của wsrep_cert_deps_distance.
Mặt khác,
Chỉ số thứ hai cho chúng ta biết chúng ta đã có thể song song hóa quá trình áp dụng các tập viết một cách hiệu quả như thế nào - wsrep_apply_oooe cho chúng tôi biết tần suất người dùng bắt đầu áp dụng các tập viết không theo thứ tự (điều này hướng tới việc song song hóa tốt hơn ).
Kết luận
Như bạn có thể thấy, có một số chỉ số đáng xem xét trong Percona XtraDB Cluster. Tất nhiên, như chúng tôi đã nêu ở đầu blog này, đó là những chỉ số liên quan chặt chẽ đến PXC và Galera Cluster nói chung.
Bạn cũng nên theo dõi các chỉ số MySQL và InnoDB thường xuyên để hiểu rõ hơn về trạng thái cơ sở dữ liệu của bạn. Và hãy nhớ rằng, bạn có thể theo dõi công nghệ này miễn phí bằng ClusterControl Community Edition.