小机器跑docker 就死机 可以试一下swap

五月 29, 2026 / Ming / 1阅读 / 1评论/ 分类: 默认分类

当物理内存不足时,Swap 能防止服务被 OOM Killer 杀死。

本文以Debian创建 4GB 交换文件为例,快速完成配置。

1. 检查 Swap

free -h                # 查看内存和 swap 的总量及使用量
swapon --show          # 列出所有激活的 swap 设备/文件

如果没有输出,说明当前系统没有启用任何 swap。

确定 Swap 大小

传统建议是 swap 大小等于物理内存的 1~2 倍,但现代服务器内存普遍较大,可以参考以下方案:

  • RAM ≤ 2 GB:swap 建议为 RAM 的 2 倍

  • RAM 2~8 GB:swap 建议等于 RAM 大小

  • RAM > 8 GB:swap 建议 4~8 GB,配合 swappiness 调整

  • 若启用休眠(服务器通常不启用),swap 需大于 RAM

2. 创建 Swap 文件

优先使用 fallocate(瞬间完成),如果不支持再改用 dd

# 创建 4G 文件(需要 root 权限)
sudo fallocate -l 4G /swapfile

# 若 fallocate 不可用(例如 Btrfs),使用:
# sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 status=progress

安全权限:Swap 文件可能包含敏感信息,必须设为仅 root 可读写。

sudo chmod 600 /swapfile
ls -lh /swapfile   # 应显示 -rw------- 1 root root 4.0G ...

3. 格式化为 Swap 并启用

sudo mkswap /swapfile
sudo swapon /swapfile

验证是否生效:

swapon --show
free -h

4. 设置开机自动挂载

将挂载信息写入 /etc/fstab

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

测试配置是否正确(无报错即可):

sudo mount -a

5. 调整 Swappiness(推荐)

swappiness 值越低,系统越倾向于使用物理内存而非 Swap。服务器一般设为 10 即可。

临时生效:

sudo sysctl vm.swappiness=10

永久生效:

echo 'vm.swappiness=10' | sudo tee /etc/sysctl.d/99-swap.conf
sudo sysctl --system

6. 移除 Swap(备忘)

如需删除或重建:

sudo swapoff /swapfile          # 停用
sudo sed -i '/\/swapfile/d' /etc/fstab  # 清理 fstab
sudo rm /swapfile               # 删除文件

配置完成后,你的 Debian 服务器就有了稳定的交换空间,遇到内存峰值时能避免进程直接崩溃。

当然还有邪修方法 现在的宝塔/1panel 都有一键设置swap的按键 一键傻瓜式解决

#小技巧(32)#电脑软件(30)

文章作者:Ming

文章链接:https://11ao.cn/archives/RDsMBZ2b

版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0 许可协议,转载请注明出处!


评论