事件起因是我的香港小鸡只有 1G 的内存,在运行多个 Docker 容器后,剩余内存仅有 60M 左右,导致 SSH 无法连接。通过服务器面板手动硬重启后,解决了登录问题。想起可以使用 Swap 分区来缓存内存中不常用的数据,这样即使只有 1G 的内存,也能较流畅地使用 Docker
首先,检查当前的 swap 是否使用及内存的使用情况,以便了解是否需要增加 swap 空间:
swapon --show
free -h
步骤 2: 创建一个新的交换文件
选择一个合适的大小(例如 2GB,这里我内存是1G,推荐设置为1:2),并用 dd
命令创建一个新的交换文件。这里以 2GB 为例:
sudo fallocate -l 2G /swapfile
如果 fallocate
不可用,可以使用 dd
命令:
sudo dd if=/dev/zero of=/swapfile bs=1G count=2
步骤 3: 设置交换文件的权限
为了安全起见,需要设置正确的权限,使得只有 root 用户能够访问这个文件:
sudo chmod 600 /swapfile
步骤 4: 将文件格式化为交换空间
接下来,将新创建的文件格式化为交换空间:
sudo mkswap /swapfile
步骤 5: 启用交换文件
启用刚才创建的交换文件:
sudo swapon /swapfile
步骤 6: 验证交换空间
再次检查 swap 是否已成功添加:
swapon --show
free -h
步骤 7: 使交换文件在系统重启后自动挂载
要确保在每次启动时都能自动挂载这个交换文件,需要将其添加到 /etc/fstab
文件中。打开该文件:
sudo nano /etc/fstab
在文件末尾添加以下行:
/swapfile none swap sw 0 0
保存Ctrl + O
,然后按 Enter
键确认
完成
现在,已经成功地在 Debian 12 上增加了 swap 空间
在按照上述步骤创建和启用交换文件后,交换空间会立即生效。可以通过以下命令来验证:
swapon --show
free -h
如果看到新的 swap 空间显示在输出中,那么它已经成功启用.