当服务器或 PC 内存较小(如 1GB RAM)时,运行 Snap 插件、Docker 容器或大型应用极易导致系统因内存溢出(OOM)而卡死或崩溃。通过配置 Swapfile(交换文件),可以为系统提供一个“缓冲区”,显著提升小内存机器的稳定性。
1. 环境检查
在操作前,首先查看系统当前的内存和交换空间状态:
free -h
如果 Swap 一栏显示的数值为 0,说明目前尚未开启虚拟内存。
2. 创建交换文件 (4GB)
对于 1GB 内存的机器,建议设置 4GB 的 Swap,以应对突发性的内存需求。
使用 fallocate 命令预分配空间(最快):
sudo fallocate -l 4G /swapfile
注意: 如果提示 fallocate failed,说明你的文件系统不支持。请改用传统的 dd 命令:
sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
3. 安全与格式化
为了数据安全,必须确保该文件只能由 root 用户访问,然后将其格式化为交换分区格式。
- 限制权限(必须执行,否则系统会报安全警告)
sudo chmod 600 /swapfile
- 格式化为交换文件系统
sudo mkswap /swapfile
- 立即启用交换文件
sudo swapon /swapfile
4. 设置开机自启
手动开启的 Swap 在重启后会失效。我们需要将其写入 /etc/fstab 配置文件中。
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
5. 关键优化:调整 Swappiness
这是 1G 内存机器最重要的一步。
swappiness 值(0-100)决定了系统使用虚拟内存的“积极程度”。
默认值 60:系统会过早使用 Swap,导致 1G 内存机器因频繁读写硬盘而变卡。
推荐值 10:尽量优先使用物理内存,仅在物理内存快耗尽时才使用 Swap。
操作命令:
- 临时修改(立即生效)
sudo sysctl vm.swappiness=10
- 永久修改(写入配置文件)
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
6. 验证结果
最后,再次执行以下命令确认配置成功:
free -h
此时你应该能看到 Swap 总量变为 4.0Gi 左右。
总结
通过以上 6 个步骤,你的 2核 1G Debian 12 系统已经拥有了足够的虚拟内存储备。虽然虚拟内存的速度远慢于物理内存,但它能有效防止应用崩溃,是低配服务器的“保命”配置。
博主提示: 如果你的硬盘是 SSD,设置 swappiness=10 能极大提升系统流畅度;如果是机械硬盘,建议尽量不要运行过于沉重的应用。
评论区