小机器跑docker 就死机 可以试一下swap
当物理内存不足时,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 -h4. 设置开机自动挂载
将挂载信息写入 /etc/fstab:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab测试配置是否正确(无报错即可):
sudo mount -a5. 调整 Swappiness(推荐)
swappiness 值越低,系统越倾向于使用物理内存而非 Swap。服务器一般设为 10 即可。
临时生效:
sudo sysctl vm.swappiness=10永久生效:
echo 'vm.swappiness=10' | sudo tee /etc/sysctl.d/99-swap.conf
sudo sysctl --system6. 移除 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 许可协议,转载请注明出处!
评论