Điểm:0

Giám sát việc sử dụng byte của các vùng đệm MySQL InnoDB lớn?

lá cờ jp
Vjz

Tôi đang cố gắng theo dõi tổng số byte đã sử dụng trong Nhóm bộ đệm InnoDB của MySQL 5.7, có thể lên tới 100 GB, sử dụng Innodb_buffer_pool_bytes_data nhưng có vẻ như biến trạng thái này là số nguyên không dấu 32 bit khi tôi truy vấn nó, vì vậy nó sẽ tràn khi byte vượt quá 2^32.

Nó dường như là một số nguyên dài không dấu trong nội bộ MySQL (https://github.com/mysql/mysql-server/blob/5.7/storage/innobase/include/srv0srv.h#L892)?

Lúc đầu, tôi nghĩ rằng tràn là do ngăn xếp theo dõi của tôi (Telegraf+InfluxDB+Grafana)-

Grafana Graph hiển thị Interger Overflow theo thời gian với Innodb_buffer_pool_bytes_data hiện tại là 490MB

-nhưng truy vấn MySQL trực tiếp dường như tiết lộ nó từ MySQL chứ không phải trong giải pháp giám sát của tôi:

HIỂN THỊ TÌNH TRẠNG TOÀN CẦU Ở ĐÂU Tên biến = "Innodb_buffer_pool_bytes_data"

-sản lượng 490371968 cho gần giống với dấu thời gian mẫu đã thấy trong Grafana ở trên.

Làm thế nào tôi có thể theo dõi chính xác giá trị thực?

Vjz avatar
lá cờ jp
Vjz
`HIỂN THỊ BIẾN TOÀN CẦU Ở ĐÂU Tên_biến = 'innodb_buffer_pool_size'` 107374182400
lá cờ ua
Có lẽ bạn có một bản tổng hợp 32-bit của MySQL hoặc OS hoặc Grafana?
lá cờ ua
Bạn có bao nhiêu RAM?
lá cờ ua
Giá trị của `SHOW VARIABLES LIKE 'innodb_buffer_pool_size';` là gì? Có lẽ nó là khoảng 500M?
Vjz avatar
lá cờ jp
Vjz
`HIỂN THỊ BIẾN NHƯ 'version_compile_os'` phiên bản_compile_os là Win64 `HIỂN THỊ BIẾN TOÀN CẦU Ở ĐÂU Tên_biến = 'innodb_buffer_pool_size'` innodb_buffer_pool_size là 107374182400 byte (~107GB) Máy chủ có 130GB RAM. Máy chủ không được khởi động lại tại dấu thời gian đó. Không đề cập đến việc khởi động lại trong tệp nhật ký MySQL. Sử dụng grafana-8.1.5.windows-AMD64. Ngay cả khi Grafana là 32-bit, ngay cả khi truy vấn `Innodb_buffer_pool_bytes_data` trực tiếp với ứng dụng khách MySQL cũng cho thấy vấn đề, nghĩa là đó không thể là Grafana. @Rick James
lá cờ ua
Theo dõi thủ công `SHOW STATUS LIKE 'Innodb_buffer_pool_bytes_data';` để hiểu rõ hơn về những gì đang xảy ra. (Tôi đoán tôi không biết câu trả lời.)
Điểm:0
lá cờ ua

Biểu đồ đó trông giống như MySQL đã khởi động lại (hoặc máy chủ đã khởi động lại) vào khoảng 12:16. buffer_pool sẽ phát triển cho đến khi nó đạt innodb_buffer_pool_size.

Nếu bạn không có đủ RAM, cho buffer_pool (cộng với những thứ khác), thì nó có thể bị sập. Cài đặt đó nên được đặt thành khoảng 70% RAM khả dụng.

Vjz avatar
lá cờ jp
Vjz
Máy chủ không được khởi động lại tại dấu thời gian đó. Không đề cập đến việc khởi động lại trong tệp nhật ký MySQL. Xem các nhận xét khác của tôi về Câu hỏi.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.