Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Những gì cần giám sát trong MySQL 8.0

Giám sát là điều bắt buộc trong mọi môi trường và cơ sở dữ liệu không phải là ngoại lệ. Khi bạn đã thiết lập và chạy cơ sở hạ tầng cơ sở dữ liệu của mình, bạn sẽ cần phải theo dõi những gì đang xảy ra. Giám sát là điều bắt buộc nếu bạn muốn chắc chắn rằng mọi thứ vẫn diễn ra tốt đẹp nhưng cũng như nếu bạn thực hiện các điều chỉnh cần thiết trong khi hệ thống của bạn phát triển và phát triển. Điều đó sẽ cho phép bạn xác định xu hướng, lập kế hoạch nâng cấp hoặc cải tiến hoặc phản ứng thích hợp với bất kỳ vấn đề hoặc lỗi nào có thể phát sinh với các phiên bản mới, các mục đích khác nhau, v.v.

Đối với mỗi công nghệ cơ sở dữ liệu, có những thứ khác nhau để giám sát. Một số trong số này dành riêng cho công cụ cơ sở dữ liệu, nhà cung cấp hoặc thậm chí là phiên bản cụ thể mà bạn đang sử dụng. Các cụm cơ sở dữ liệu phụ thuộc rất nhiều vào cơ sở hạ tầng bên dưới, vì vậy các số liệu thống kê về mạng và hoạt động cũng rất thú vị đối với các quản trị viên cơ sở dữ liệu.

Khi chạy nhiều hệ thống cơ sở dữ liệu, việc giám sát các hệ thống này có thể trở nên khá vất vả.

Trong blog này, chúng ta sẽ xem xét những gì bạn cần để giám sát môi trường MySQL 8.0. Chúng tôi cũng sẽ xem xét các tính năng giám sát điều khiển cụm, có thể giúp bạn theo dõi tình trạng cơ sở dữ liệu của mình miễn phí.

Giám sát Hệ điều hành và Cơ sở dữ liệu

Khi quan sát một cụm hoặc nút cơ sở dữ liệu, có hai điểm chính cần lưu ý:hệ điều hành và bản thân cá thể MySQL. 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 tuân theo tham số theo ý nghĩa của hệ thống và bạn nên tìm kiếm các thay đổi trên mô hình hành vi.

Lưu ý rằng khi một trong các thông số của bạn bị ảnh hưởng, nó cũng có thể ảnh hưởng đến những thông 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 giám sát và cảnh báo thích hợp là điều cần thiết để làm cho nhiệm vụ này trở nên đơn giản nhất có thể.

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ì rất khó để tìm một công cụ để bao gồm tất cả các chỉ số mong muốn.

Giám sát Hệ điều hành

Một điều quan trọng (phổ biến đối với tất cả các công cụ cơ sở dữ liệu và thậm chí đối với tất cả các hệ thống) là giám sát hành vi của Hệ điều hành. Dưới đây là một số điểm cần kiểm tra ở đây. Dưới đây, bạn có thể tìm thấy các tài nguyên hệ thống hàng đầu để xem trên máy chủ cơ sở dữ liệu. Nó thực sự cũng là danh sách những điều đầu tiên cần kiểm tra.

Sử dụng CPU

Sử dụng CPU cao không phải là điều xấu miễn là bạn không đạt đến giới hạn. Phần trăm sử dụng CPU quá mức có thể là một vấn đề nếu đó không phải là hành vi thông thường. Trong trường hợp này, điều cần thiết là phải xác định các quy trình / quá trình đang tạo ra vấn đề này. Nếu vấn đề là do quy trình cơ sở dữ liệu, bạn sẽ cần phải kiểm tra xem điều gì đang xảy ra bên trong cơ sở dữ liệu.

Bộ nhớ RAM hoặc Sử dụng SWAP

Tốt nhất, toàn bộ cơ sở dữ liệu của bạn nên được lưu trữ trong bộ nhớ, nhưng điều này không phải lúc nào cũng có thể thực hiện được. Cung cấp MySQL nhiều nhất có thể nhưng vẫn đủ để các quy trình khác hoạt động.

Nếu bạn thấy giá trị cao cho số liệu này và không có gì thay đổi trong hệ thống của mình, bạn có thể cần kiểm tra cấu hình cơ sở dữ liệu của mình. Các tham số như shared_buffers và work_mem có thể ảnh hưởng trực tiếp đến điều này vì chúng xác định dung lượng bộ nhớ có thể sử dụng cho cơ sở dữ liệu MySQL. Swap chỉ dành cho các trường hợp khẩn cấp và không nên sử dụng nó, hãy đảm bảo rằng bạn cũng đã đặt hệ điều hành của mình để MySQL quyết định về việc sử dụng swap.

Sử dụng đĩa

Mức sử dụng đĩa là một trong những số liệu quan trọng để theo dõi và cảnh báo. Đảm bảo rằng bạn luôn có dung lượng trống cho dữ liệu mới, tệp tạm thời, ảnh chụp nhanh hoặc bản sao lưu.

Việc theo dõi các giá trị số liệu cố định là không đủ tốt. Sự gia tăng bất thường trong việc sử dụng không gian đĩa hoặc tiêu thụ quá nhiều quyền truy cập đĩa là những điều cần thiết phải xem xét vì bạn có thể có nhiều lỗi được ghi vào tệp nhật ký MySQL hoặc cấu hình bộ nhớ cache tồi có thể tạo ra mức tiêu thụ truy cập đĩa quan trọng thay vì sử dụng bộ nhớ để xử lý các truy vấn. Đảm bảo rằng bạn có thể phát hiện các hành vi bất thường ngay cả khi bạn chưa đạt đến các chỉ số cảnh báo và quan trọng.

Cùng với việc theo dõi dung lượng, chúng ta cũng nên theo dõi hoạt động của đĩa. Các giá trị hàng đầu cần theo dõi là:

  • Yêu cầu đọc / ghi
  • Độ dài hàng đợi IO
  • Thời gian chờ IO trung bình
  • Thời gian đọc / ghi trung bình
  • Băng thông Đọc / Ghi

Bạn có thể sử dụng iostat hoặc pt-diskstats từ Percona để xem tất cả các chi tiết này.

Những thứ có thể ảnh hưởng đến hiệu suất đĩa của bạn thường liên quan đến việc truyền dữ liệu từ và tới đĩa của bạn, vì vậy hãy theo dõi các quá trình bất thường hơn là có thể được bắt đầu từ những người dùng khác.

Tải trung bình

Chỉ số hiệu suất tất cả trong một. Hiểu Linux Load là một chìa khóa để giám sát hệ điều hành và hệ thống phụ thuộc vào cơ sở dữ liệu.

Tải trọng trung bình liên quan đến ba điểm nêu trên. Mức trung bình tải cao có thể do sử dụng CPU, RAM hoặc đĩa quá mức.

Mạng

Trừ khi thực hiện sao lưu hoặc chuyển một lượng lớn dữ liệu, đó không phải là nút cổ chai.

Sự cố mạng có thể ảnh hưởng đến tất cả các hệ thống vì ứng dụng không thể kết nối (hoặc kết nối các gói bị mất) với cơ sở dữ liệu, vì vậy, đây thực sự là một chỉ số quan trọng cần theo dõi. Bạn có thể theo dõi độ trễ hoặc mất gói và vấn đề chính có thể là bão hòa mạng, sự cố phần cứng hoặc chỉ là cấu hình mạng kém.

Giám sát Cơ sở dữ liệu

Mặc dù phải theo dõi nhưng nó thường không miễn phí. Luôn có một khoản chi phí đối với hiệu suất cơ sở dữ liệu, tùy thuộc vào mức độ bạn đang theo dõi, vì vậy bạn nên tránh theo dõi những thứ mà bạn không sử dụng.

Nói chung, có hai cách để theo dõi cơ sở dữ liệu của bạn, từ nhật ký hoặc từ phía cơ sở dữ liệu bằng cách truy vấn.

Trong trường hợp nhật ký, để có thể sử dụng chúng, bạn cần có cấp độ ghi nhật ký cao, tạo ra khả năng truy cập đĩa cao và nó có thể ảnh hưởng đến hiệu suất của cơ sở dữ liệu của bạn.

Đối với chế độ truy vấn, mỗi kết nối đến cơ sở dữ liệu đều sử dụng tài nguyên, do đó, tùy thuộc vào hoạt động của cơ sở dữ liệu của bạn và tài nguyên được chỉ định, nó cũng có thể ảnh hưởng đến hiệu suất.

Tất nhiên, có rất nhiều số liệu trong MySQL. Ở đây chúng tôi sẽ tập trung vào điều quan trọng hàng đầu.

Theo dõi Phiên hoạt động

Bạn cũng nên theo dõi số lượng phiên hoạt động và trạng thái hoạt động của DB. Thông thường để hiểu được vấn đề bạn cần xem cơ sở dữ liệu đang chạy trong bao lâu. vì vậy chúng tôi có thể sử dụng điều này để phát hiện các lần hồi sinh.

Điều tiếp theo sẽ là một số phiên. Nếu bạn đang ở gần giới hạn, bạn cần kiểm tra xem có điều gì không ổn hoặc bạn chỉ cần tăng giá trị max_connections. Sự khác biệt về số lượng có thể là sự tăng hoặc giảm các kết nối. Sử dụng không đúng cách các vấn đề về tổng hợp kết nối, khóa hoặc mạng là những vấn đề phổ biến nhất liên quan đến số lượng kết nối.

Các giá trị chính ở đây là

  • Thời gian hoạt động
  • Threads_connected
  • Max_used_connections
  • Aborted_connects

Khóa Cơ sở dữ liệu

Nếu bạn có một truy vấn đang chờ một truy vấn khác, bạn cần kiểm tra xem truy vấn khác đó là một quy trình bình thường hay là một quy trình mới. Trong một số trường hợp, ví dụ:nếu ai đó đang thực hiện cập nhật trên một bảng lớn, thì hành động này có thể ảnh hưởng đến hoạt động bình thường của cơ sở dữ liệu của bạn, tạo ra số lượng khóa cao.

Giám sát Nhân rộng

Các chỉ số chính cần theo dõi để tái tạo là độ trễ và trạng thái sao chép. Không chỉ trạng thái tăng mà còn có độ trễ do giá trị này tăng liên tục không phải là một dấu hiệu tốt vì nó có nghĩa là nô lệ không thể bắt kịp chủ nhân của nó.

Các vấn đề phổ biến nhất là vấn đề mạng, vấn đề tài nguyên phần cứng hoặc vấn đề đo kích thước. Nếu bạn đang đối mặt với vấn đề sao chép, bạn sẽ cần biết điều này càng sớm càng tốt vì bạn sẽ cần sửa nó để đảm bảo môi trường có tính khả dụng cao.

Quá trình sao chép được giám sát tốt nhất bằng cách kiểm tra TRẠNG THÁI LƯỢT và các thông số sau:

  • SLAVE_RUNNING
  • SLAVE_IO_Running
  • SLAVE_SQL_RUNNING
  • LAST_SQL_ERRNO
  • SECONDS_BEHIND_MASTER

Bản sao lưu

Rất tiếc, phiên bản cộng đồng vani không đi kèm với trình quản lý sao lưu. Bạn nên biết liệu quá trình sao lưu đã hoàn tất hay chưa và liệu nó có thể sử dụng được hay không. Thông thường, điểm cuối cùng này không được tính đến, nhưng có lẽ đây là bước kiểm tra quan trọng nhất trong quy trình sao lưu. Ở đây, chúng tôi sẽ phải sử dụng các công cụ bên ngoài như percona-xtrabackup hoặc ClusterControl.

Nhật ký Cơ sở dữ liệu

Bạn nên theo dõi nhật ký cơ sở dữ liệu của mình để tìm các lỗi như FATAL hoặc deadlock, hoặc thậm chí các lỗi phổ biến như vấn đề xác thực hoặc các truy vấn chạy dài. Hầu hết các lỗi được ghi trong tệp nhật ký với thông tin hữu ích chi tiết để sửa chữa nó. Những điểm hỏng hóc thường gặp bạn cần để ý là lỗi, kích thước tệp nhật ký. Vị trí của nhật ký lỗi có thể được tìm thấy trong biến log_error.

Công cụ Bên ngoài

Cuối cùng nhưng không kém phần quan trọng, bạn có thể tìm thấy danh sách các công cụ hữu ích để theo dõi hoạt động cơ sở dữ liệu của mình.

Percona Toolkit - là bộ công cụ Linux của Percona để phân tích các hoạt động của MySQL và OS. Bạn có thể tìm thấy nó ở đây. Nó hỗ trợ các bản phân phối Linux 64 bit phổ biến nhất như Debian, Ubuntu và Redhat.

mysqladmin - mysqladmin là một chương trình quản trị cho MySQL daemon. Nó có thể được sử dụng để kiểm tra tình trạng máy chủ (ping), liệt kê các quy trình, xem giá trị của các biến, nhưng cũng có thể thực hiện một số công việc quản trị như tạo / thả cơ sở dữ liệu, xóa (đặt lại) nhật ký, thống kê và bảng, loại bỏ các truy vấn đang chạy, dừng máy chủ và kiểm soát sao chép.

innotop - cung cấp một cái nhìn mở rộng về các câu lệnh SHOW. Nó rất mạnh mẽ và có thể giảm đáng kể thời gian điều tra. Trong số các hỗ trợ MySQL vani, bạn có thể thấy chế độ xem Galera và chi tiết sao chép Master-slave.

mtop - giám sát máy chủ MySQL hiển thị các truy vấn mất nhiều thời gian nhất để hoàn thành. Các tính năng bao gồm 'phóng to' một quy trình để hiển thị truy vấn hoàn chỉnh, 'giải thích' thông tin trình tối ưu hóa truy vấn cho một truy vấn và các truy vấn 'giết'. Ngoài ra, các thống kê hiệu suất máy chủ, thông tin cấu hình và mẹo điều chỉnh cũng được cung cấp.

Mytop - chạy trong một thiết bị đầu cuối và hiển thị thống kê về chuỗi, truy vấn, truy vấn chậm, thời gian hoạt động, tải, v.v. ở định dạng bảng, tương tự như Linux

Kết luận

Blog này không nhằm mục đích là một hướng dẫn đầy đủ về cách tăng cường giám sát cơ sở dữ liệu, nhưng hy vọng nó cung cấp một bức tranh rõ ràng hơn về những thứ có thể trở nên thiết yếu và một số thông số cơ bản có thể được theo dõi. Đừng ngần ngại cho chúng tôi biết nếu chúng tôi bỏ lỡ bất kỳ điều quan trọng nào trong phần nhận xét bên dưới.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để sửa lỗi giá trị chuỗi không chính xác?

  2. hiển thị dữ liệu từ cơ sở dữ liệu SQL thành bảng php / html

  3. Chế độ xem MySQL

  4. Mẹo nâng cấp Percona XtraDB Cluster lên 8.0

  5. Cách cài đặt WordPress:Phần mềm máy chủ