Optimieren Sie die MySQL-Speichernutzung in Docker-Containern, insbesondere in ressourcenbeschränkten Umgebungen wie VPSs. Ich habe kürzlich ein Speicherproblem auf meinem VPS behoben, auf dem mehrere WordPress-Container mit MySQL ausgeführt werden. Der Leerlaufverbrauch betrug etwa 500 MB und wurde nach den hier beschriebenen Optimierungen auf etwa 150 MB reduziert.
Diese Anleitung zeigt, wie Sie einen MySQL-Container in Docker einrichten, um den Speicherverbrauch zu minimieren. Enthält eine beispielhafte optimierte my.cnf
-Datei, eine docker-compose.yml
-Datei mit Volume-Zuordnung und Anweisungen zu Dateiberechtigungen.
Schritt 1: Erstellen der Konfigurationsdatei my.cnf
Erstellen Sie eine Datei mit dem Namen mysql-low-memory-my.cnf
in Ihrem bevorzugten Verzeichnis auf dem Host. Diese Datei enthält die optimierten Einstellungen zur Reduzierung der Speichernutzung.
<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>
Schritt 2: Dateiberechtigungen festlegen
Nach dem Erstellen der Datei mysql-low-memory-my.cnf
legen Sie die Berechtigungen so fest, dass sie nur von MySQL gelesen werden können, um Änderungen durch andere Prozesse oder Benutzer zu verhindern.
<code class="language-bash">chmod 0444 mysql-low-memory-my.cnf</code>
Schritt 3: Konfigurieren docker-compose.yml
Ordnen Sie in der Datei docker-compose.yml
das Volume mit der Konfigurationsdatei dem MySQL-Container zu:
<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>
Schritt 4: Container starten
Führen Sie den folgenden Befehl aus, um den Container im getrennten Modus zu starten:
<code class="language-bash">docker compose up -d</code>
Ihr MySQL-Container läuft jetzt mit optimiertem Speicherverbrauch! Denken Sie daran, dass sich diese Einstellungen auf die Datenbankleistung auswirken können. Passen Sie sie bei Bedarf an.
Verwenden Sie den folgenden Befehl, um die Speichernutzung des Containers zu überwachen:
<code class="language-bash">docker stats mysql-container</code>
[Repository mit dem verwendeten Code] (Link zum Repository)
Das obige ist der detaillierte Inhalt vonReduzierung der Verwendung des MySQL -Speichers in Docker. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!