Maison >base de données >tutoriel mysql >Réduire l'utilisation de la mémoire MySQL dans Docker

Réduire l'utilisation de la mémoire MySQL dans Docker

Patricia Arquette
Patricia Arquetteoriginal
2025-01-27 02:11:09360parcourir

Reduzindo o Uso de Memória do MySQL no Docker

Optimisez l'utilisation de la mémoire MySQL dans les conteneurs Docker, en particulier dans les environnements aux ressources limitées comme les VPS. J'ai récemment résolu un problème de mémoire sur mon VPS exécutant plusieurs conteneurs WordPress avec MySQL ; la consommation en veille était d'environ 500 Mo, réduite à environ 150 Mo après les optimisations décrites ici.

Ce guide montre comment configurer un conteneur MySQL dans Docker pour minimiser la consommation de mémoire. Comprend un exemple de fichier my.cnf optimisé, un fichier docker-compose.yml avec mappage de volume et des instructions sur les autorisations de fichier.

Étape 1 : Création du fichier de configuration my.cnf

Créez un fichier appelé mysql-low-memory-my.cnf dans votre répertoire préféré sur l'hôte. Ce fichier contiendra les paramètres optimisés pour réduire l'utilisation de la mémoire.

<code>[mysqld]
# Tamanho do buffer principal do InnoDB
innodb_buffer_pool_size = 128M

# Tamanho do buffer de chave (MyISAM)
key_buffer_size = 8M

# Número máximo de conexões simultâneas
max_connections = 50

# Cache de threads
thread_cache_size = 8

# Tamanho de tabelas temporárias em memória
tmp_table_size = 16M
max_heap_table_size = 16M

# Desativa o Performance Schema
performance_schema = 0

# Tamanho do buffer de log
innodb_log_buffer_size = 4M

# Cache de tabelas abertas
table_open_cache = 200</code>

Étape 2 : Définition des autorisations de fichiers

Après avoir créé le fichier mysql-low-memory-my.cnf, définissez les autorisations en lecture seule par MySQL, empêchant ainsi les modifications par d'autres processus ou utilisateurs.

<code class="language-bash">chmod 0444 mysql-low-memory-my.cnf</code>

Étape 3 : Configuration docker-compose.yml

Dans le fichier docker-compose.yml, mappez le volume contenant le fichier de configuration au conteneur MySQL :

<code class="language-yaml">services:
  mysql:
    image: mysql:8
    container_name: mysql-container
    environment:
      MYSQL_ROOT_PASSWORD: sua_senha
    volumes:
      - './mysql-low-memory-my.cnf:/etc/mysql/conf.d/mysql-low-memory-my.cnf'
    ports:
      - "3306:3306"</code>

Étape 4 : Démarrage du conteneur

Exécutez la commande ci-dessous pour démarrer le conteneur en mode détaché :

<code class="language-bash">docker compose up -d</code>

Votre conteneur MySQL fonctionne désormais avec une consommation mémoire optimisée ! N'oubliez pas que ces paramètres peuvent affecter les performances de la base de données, ajustez-les si nécessaire.

Utilisez la commande suivante pour surveiller l'utilisation de la mémoire du conteneur :

<code class="language-bash">docker stats mysql-container</code>

[Dépôt avec le code utilisé] (lien vers le référentiel)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn