首页 > 数据库 > 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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板