it-swarm.it

Come si calcola la variabile mysql max_connections?

Come si calcola mysql max_connections?

Cosa prendi in considerazione?

39
Gabriel Solomon

Pubblicheremo questo come una risposta, con le informazioni pertinenti. Le formule di base sono:

Disponibile RAM = Global Buffers + (Thread Buffers x max_connections)

max_connections = (Disponibile RAM - Buffer globali)/Buffer thread

Per ottenere l'elenco dei buffer e i loro valori:

SHOW VARIABLES LIKE '%buffer%';

Ecco un elenco dei buffer e se sono globali o thread:

Global Buffers: key_buffer_size, innodb_buffer_pool_size, innodb_log_buffer_size, innodb_additional_mem_pool_size, net_buffer_size, query_cache_size

Thread Buffers: sort_buffer_size, myisam_sort_buffer_size, read_buffer_size, join_buffer_size, read_rnd_buffer_size, thread_stack

28
Derek Downey

ATTENZIONE! Questo è del 2011 usando MySQL 5.1.x. Usare a proprio rischio

---- ORIGINAL POST ----

Ecco un'altra formula alternativa nel modulo di stored procedure:

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;

Suppongo che tu stia utilizzando un database MySQL> versione 5.1.xe tu sia un utente privilegiato. Ma giochi con le connessioni massime inserendo il numero che desideri e vedi i risultati.

11
randomx

Sto fissando con il numero che ottengo dalla semplice calulazione: expected_number_of_requests_per_second * expected_average_request_processing_time * 2.

Per una successiva messa a punto, utilizzo sempre il sistema di monitoraggio con dati storici e cerco di riservare il 20% in caso di picco. È un po 'più complesso quando si utilizzano alcuni pool di connessioni (che di solito è una buona idea) - quindi è necessario monitorare il numero di connessioni utilizzate nel pool.

0
rvs