Bagaimana Anda menghitung mysql max_connections?
Apa yang Anda pertimbangkan?
Bagaimana Anda menghitung mysql max_connections?
Apa yang Anda pertimbangkan?
Jawaban:
Akan memposting ini sebagai jawaban, dengan informasi yang relevan. Rumus dasarnya adalah:
RAM yang Tersedia = Global Buffer + (Utas Buffer x max_connections)
max_connections = (RAM Tersedia - Buffer Global) / Buffer Utas
Untuk mendapatkan daftar buffer dan nilainya:
SHOW VARIABLES LIKE '%buffer%';
Inilah daftar buffer dan apakah itu Global atau Thread:
Buffer Global : key_buffer_size, innodb_buffer_pool_size, innodb_log_buffer_size, innodb_additional_mem_pool_size, net_buffer_size, net_buffer_size, query_cache_size
Thread Buffer : sort_buffer_size, myisam_sort_buffer_size, read_buffer_size, join_buffer_size, read_rnd_buffer_size, thread_stack
PERINGATAN! Ini dari 2011 menggunakan MySQL 5.1.x. Gunakan dengan risiko Anda sendiri
---- POS ASLI ----
Berikut formula alternatif lain dalam bentuk prosedur tersimpan:
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;
Saya berasumsi Anda menggunakan database MySQL> versi 5.1.x dan Anda adalah pengguna istimewa. Tetapi Anda bermain dengan koneksi maksimal dengan memasukkan nomor apa pun yang Anda inginkan dan melihat hasilnya.
Saya menatap nomor yang saya dapatkan dari perhitungan sederhana: expected_number_of_requests_per_second * expected_average_request_processing_time * 2.
Untuk penyetelan nanti, saya selalu menggunakan sistem pemantauan dengan data historis dan mencoba memiliki 20% cadangan jika terjadi beberapa puncak. Ini sedikit lebih kompleks ketika Anda menggunakan beberapa koneksi pooling (yang biasanya merupakan ide yang bagus) - maka Anda perlu memonitor jumlah koneksi yang digunakan di pool.