it-swarm-fr.com

Comment calculez-vous la variable mysql max_connections?

Comment calculez-vous mysql max_connections?

Que considérez-vous?

39
Gabriel Solomon

Je vais poster ceci comme réponse, avec les informations pertinentes. Les formules de base sont:

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

max_connections = (Available RAM - Global Buffers)/Thread Buffers

Pour obtenir la liste des tampons et leurs valeurs:

SHOW VARIABLES LIKE '%buffer%';

Voici une liste des tampons et s'ils sont Global ou 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

AVERTISSEMENT! Ceci est de 2011 en utilisant MySQL 5.1.x. Utilisez à vos risques et périls

---- ORIGINAL POST ----

Voici une autre formule alternative sous forme de procédure stockée:

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;

Je suppose que vous utilisez une base de données MySQL> version 5.1.x et vous êtes un utilisateur privilégié. Mais vous jouez avec le maximum de connexions en insérant le nombre que vous voulez et voyez les résultats.

11
randomx

Je regarde avec le nombre que j'obtiens à partir de la simple calculation:.

Pour un réglage ultérieur, j'utilise toujours un système de surveillance avec des données historiques et j'essaie d'avoir 20% réservés en cas de pic. C'est un peu plus complexe lorsque vous utilisez un pool de connexions (ce qui est généralement une bonne idée) - vous devez ensuite surveiller le nombre de connexions utilisées dans le pool.

0
rvs