減少在Docker中使用MySQL內(nèi)存的使用

減少在Docker中使用MySQL內(nèi)存的使用

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

我們將提供優(yōu)化的my.cnf配置文件示例、docker-compose.yml文件配置以及文件權(quán)限設(shè)置說明。

步驟一:創(chuàng)建my.cnf配置文件

在主機(jī)上創(chuàng)建一個(gè)名為mysql-low-memory-my.cnf的配置文件:

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

步驟二:設(shè)置文件權(quán)限

為確保MySQL能夠正確讀取配置文件且其他進(jìn)程無法修改,請?jiān)O(shè)置文件權(quán)限:

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  # 請?zhí)鎿Q為您的密碼     volumes:       - ./mysql-low-memory-my.cnf:/etc/mysql/conf.d/mysql-low-memory.cnf     ports:       - "3306:3306"

步驟四:啟動(dòng)容器

運(yùn)行以下命令啟動(dòng)容器:

docker compose up -d

完成以上步驟后,您的MySQL容器將以更低的內(nèi)存占用率運(yùn)行。 請注意,這些設(shè)置可能會(huì)影響數(shù)據(jù)庫性能,請根據(jù)實(shí)際情況調(diào)整參數(shù)。

您可以使用以下命令檢查容器的內(nèi)存使用情況:

docker stats mysql-container

相關(guān)代碼已上傳至代碼倉庫。(請補(bǔ)充代碼倉庫鏈接)

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊15 分享