減少在Docker中使用MySQL內存的使用

減少在Docker中使用MySQL內存的使用

mysql數據庫,尤其在VPS等資源受限環境下,可能消耗大量內存。本文將介紹如何優化docker中的MySQL容器配置,降低其內存占用。 近期,筆者在運行多個包含MySQL的WordPress容器時遭遇內存問題,MySQL容器消耗約500MB空閑內存,通過以下優化后,內存占用降低至約150MB。

我們將提供優化的my.cnf配置文件示例、docker-compose.yml文件配置以及文件權限設置說明。

步驟一:創建my.cnf配置文件

在主機上創建一個名為mysql-low-memory-my.cnf的配置文件:

[mysqld] # InnoDB緩沖池大小 innodb_buffer_pool_size = 128M  # MyISAM鍵緩沖區大小 key_buffer_size = 8M  # 最大并發連接數 max_connections = 50  # 線程緩存大小 thread_cache_size = 8  # 內存臨時表大小限制 tmp_table_size = 16M max_heap_table_size = 16M  # 禁用Performance Schema以節省內存 performance_schema = 0  # InnoDB日志緩沖區大小 innodb_log_buffer_size = 4M  # 打開表緩存大小 table_open_cache = 200

步驟二:設置文件權限

為確保MySQL能夠正確讀取配置文件且其他進程無法修改,請設置文件權限:

chmod 0444 mysql-low-memory-my.cnf

步驟三:配置docker-compose.yml

在docker-compose.yml文件中,將配置文件映射為MySQL容器的卷:

services:   mysql:     image: mysql:8     container_name: mysql-container     environment:       MYSQL_ROOT_PASSWORD: yourpassword  # 請替換為您的密碼     volumes:       - ./mysql-low-memory-my.cnf:/etc/mysql/conf.d/mysql-low-memory.cnf     ports:       - "3306:3306"

步驟四:啟動容器

運行以下命令啟動容器:

docker compose up -d

完成以上步驟后,您的MySQL容器將以更低的內存占用率運行。 請注意,這些設置可能會影響數據庫性能,請根據實際情況調整參數。

您可以使用以下命令檢查容器的內存使用情況:

docker stats mysql-container

相關代碼已上傳至代碼倉庫。(請補充代碼倉庫鏈接)

? 版權聲明
THE END
喜歡就支持一下吧
點贊15 分享