優化 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中文網其他相關文章!