优化 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中文网其他相关文章!