Làm thế nào để bạn tính toán max_connections mysql?
Bạn xem xét điều gì?
Làm thế nào để bạn tính toán max_connections mysql?
Bạn xem xét điều gì?
Câu trả lời:
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
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ả.
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.