首頁 > 資料庫 > mysql教程 > 減少 Docker 中的 MySQL 記憶體使用

減少 Docker 中的 MySQL 記憶體使用

Patricia Arquette
發布: 2025-01-27 02:11:09
原創
355 人瀏覽過

Reduzindo o Uso de Memória do MySQL no Docker

優化 Docker 容器中的 MySQL 內存使用情況,尤其是在 VPS 等資源受限的環境中。 我最近解決了使用 MySQL 運行多個 WordPress 容器的 VPS 上的內存問題;空閒消耗約為 500MB,經過此處描述的優化後減少至 150MB 左右。

本指南演示瞭如何在 Docker 中設置 MySQL 容器以最小化內存消耗。 包括優化的 my.cnf 文件示例、具有捲映射的 docker-compose.yml 文件以及有關文件權限的說明。

第1步:創建配置文件my.cnf

在主機上您的首選目錄中創建一個名為 mysql-low-memory-my.cnf 的文件。 該文件將包含優化設置以減少內存使用。

<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>
登入後複製

第 2 步:設置文件權限

創建文件mysql-low-memory-my.cnf後,將權限設置為MySQL只讀,防止其他進程或用戶修改。

<code class="language-bash">chmod 0444 mysql-low-memory-my.cnf</code>
登入後複製

第 3 步:配置 docker-compose.yml

在文件docker-compose.yml中,將包含配置文件的捲映射到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>
登入後複製

第 4 步:啟動容器

運行以下命令以分離模式啟動容器:

<code class="language-bash">docker compose up -d</code>
登入後複製

您的 MySQL 容器現在正在以優化的內存消耗運行! 請記住,這些設置會影響數據庫性能,請根據需要進行調整。

使用以下命令監控容器的內存使用情況:

<code class="language-bash">docker stats mysql-container</code>
登入後複製

[包含所使用代碼的存儲庫](存儲庫鏈接)

以上是減少 Docker 中的 MySQL 記憶體使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板