博主之前买了个新用户折扣的云服务器,2核2G,价格是真香。结果部署了几个服务后发现内存不够用,动不动就 OOM 崩溃。后来发现一个不花钱的小妙招,加 Swap 虚拟内存,直接用磁盘空间扩展内存。今天就把自己用的方法整理出来分享给大家,命令直接复制就能用。
一、什么是虚拟内存(Swap)
虚拟内存(Swap)是 Linux 利用磁盘空间模拟的内存区域。
当物理内存不足时,系统会将不常用的数据从内存转移到 Swap,腾出空间给活跃进程。
二、创建和启用 Swap 文件
适用场景
操作步骤
# 查看内存和 Swap 使用情况free -h# 查看已启用的 Swap 设备/文件swapon --show
以下命令创建一个2GB的 Swap 文件(根据需要调整 count 值):
dd if=/dev/zero of=/swapfile bs=1M count=2048
chmod 600 /swapfile#格式化 Swap 文件将文件格式化为 Swap 分区格式:mkswap /swapfile#启用 Swap 文件使系统立即使用该 Swap 文件swapon /swapfile
编辑 /etc/fstab,添加:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab#验证配置结果free -hswapon --show
三、调整 Swap 文件大小
如果之前配小了,需要调整大小,按以下步骤操作:
1. 禁用当前 Swap
2. 删除原 Swap 文件
3. 创建新大小的 Swap 文件
例如创建4GB:
dd if=/dev/zero of=/swapfile bs=1M count=4096
4. 重新设置权限并启用
chmod 600 /swapfilemkswap /swapfileswapon /swapfile
注意:文件路径没变,无需修改 /etc/fstab。
四、删除 Swap 分区/文件
如果不再需要 Swap,可以移除:
1. 禁用 Swap
# 如果是文件swapoff /swapfile # 如果是分区(X 替换为具体盘符,如 sda5)swapoff /dev/sdX
2. 删除 fstab 条目
编辑 /etc/fstab,删除包含 Swap 的行:
# 找到类似 ”/swapfile none swap sw 0 0” 的行并删除vim /etc/fstab
3. 删除 Swap 文件
4. 验证删除结果
五、注意事项
1. Swap 大小建议
2. 性能影响
3. 云服务器说明
- 部分云服务商限制 Swap 使用,先查看平台文档(博主用的某度可以创建)
4. 操作建议
以上都是博主多年实操踩坑总结出来的经验,希望能够帮到遇到同类问题的朋友。
整理干货不易,如果对你有帮助,欢迎点赞 + 关注,后续持续分享更多实用技术内容。