限制现有的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
