限制现有的docker容器使用内存
批量设置内存上限(复制并执行即可)
# 1. 核心数据库(MySQL)限额 256M
docker update --memory 256m --memory-swap 256m mysql
# 2. 核心网络/Git 工具(mihomo, gogs)限额 128M ~ 256M
docker update --memory 256m --memory-swap 256m mihomo
docker update --memory 128m --memory-swap 128m gogs
# 3. 基础服务组件(PHP, Redis, Nginx)限额 128M
docker update --memory 128m --memory-swap 128m fn-php
docker update --memory 128m --memory-swap 128m fn-redis
docker update --memory 128m --memory-swap 128m fn-nginx
# 4. 其他小工具(账本、面板)限额 128M 和 64M
docker update --memory 128m --memory-swap 128m cashbook4
docker update --memory 64m --memory-swap 64m metacubexd为什么这样改?
--memory 256m:限制该容器最多只能吃掉 256M 物理内存。
--memory-swap 256m:限制该容器的“物理内存 + Swap(交换内存)”总共只有 256M。这意味着这个容器严禁过度占用系统资源。
一旦这些容器内存超标,Docker 内部会自行清理,而绝不干扰您 OpenVPN 服务器的正常运行。
调整 Swappiness 权重
低 Swappiness 值,让系统尽量优先使用内存(和我们刚才设置的 ZRAM),减少对闪存的频繁读写。
# 查看当前值 (默认通常是 60)
cat /proc/sys/vm/swappiness
# 临时修改为 10
sysctl vm.swappiness=10
# 永久修改
echo "vm.swappiness=10" >> /etc/sysctl.conf
评论 (0)