Làm thế nào để bạn tính toán biến mys_ max_connections?


Câu trả lời:


27

Sẽ gửi bài này như một câu trả lời, với các thông tin liên quan. Các công thức cơ bản là:

RAM khả dụng = Bộ đệm toàn cầu + (Bộ đệm chủ đề x max_connections)

max_connections = (RAM khả dụng - Bộ đệm toàn cầu) / Bộ đệm luồng

Để có được danh sách bộ đệm và giá trị của chúng:

SHOW VARIABLES LIKE '%buffer%';

Đây là danh sách các bộ đệm và cho dù chúng là Toàn cầu hay Chủ đề:

Bộ đệm toàn cầu : key_buffer_size, innodb_buffer_pool_size, innodb_log_buffer_size, innodb_additable_mem_pool_size, net_buffer_size, query_cache_size

Bộ đệm chủ đề : sort_buffer_size, myisam_sort_buffer_size, read_buffer_size, tham gia_buffer_size, read_rnd_buffer_size, thread_stack


1
KCD đã cung cấp liên kết này dưới dạng một máy tính bộ nhớ tối đa: mysqlcalculator.com
Derek Downey

Derek, bạn có nghĩa là "Bộ đệm toàn cầu = SUM của tất cả các biến bộ đệm toàn cầu và Bộ đệm chủ đề = tổng của tất cả các biến bộ đệm luồng"?
Mat

11

CẢNH BÁO! Đây là từ năm 2011 sử dụng MySQL 5.1.x. Sử dụng có nguy cơ của riêng bạn

---- BÀI VIẾT GỐC

Đây là một công thức thay thế khác trong mẫu thủ tục được lưu trữ:

DELIMITER //
CREATE PROCEDURE sproc_show_max_memory ( OUT max_memory DECIMAL(7,4))
BEGIN
SELECT ( @@key_buffer_size + @@query_cache_size + @@tmp_table_size + @@innodb_buffer_pool_size + @@innodb_additional_mem_pool_size + @@innodb_log_buffer_size + @@max_connections * ( @@read_buffer_size + @@read_rnd_buffer_size + @@sort_buffer_size + @@join_buffer_size + @@binlog_cache_size + @@thread_stack ) ) / 1073741824 AS MAX_MEMORY_GB INTO max_memory;
END//
DELIMITER ;
CALL sproc_show_max_memory(@show_max_memory);
SELECT @show_max_memory;

Tôi giả sử bạn sử dụng cơ sở dữ liệu MySQL> phiên bản 5.1.x và bạn là người dùng đặc quyền. Nhưng bạn chơi với các kết nối tối đa bằng cách chèn bất kỳ số nào bạn muốn và xem kết quả.


1
Tôi chỉ đọc công thức của bạn. Khá lắt léo !!! BTW +1 !!!
RolandoMySQLDBA

2
Có lẽ đã đến lúc xem lại công thức này với tất cả các thay đổi trong 5.5 và 5.6, nhưng nó vẫn tiện dụng.
Randomx


0

Tôi đang nhìn chằm chằm vào số tôi đang nhận được từ phép tính toán đơn giản: tỷ lệ dự kiến

Để điều chỉnh sau này, tôi luôn sử dụng hệ thống giám sát với dữ liệu lịch sử và cố gắng bảo lưu 20% trong trường hợp cao điểm. Nó phức tạp hơn một chút khi bạn đang sử dụng một số nhóm kết nối (thường là một ý tưởng tốt) - sau đó bạn cần theo dõi số lượng kết nối được sử dụng trong nhóm.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.