Debian GNU/Linux创建swap

Debian GNU/Linux创建swap

前言:在使用cargo编译deno时,在最后打包成二进制文件的时候,会报错退出,再次编译时查看系统状态发现很可能是内存不足,于是准备增加swap来应对。以下记录在Debian GNU/Linux增加swap方法。

我们都知道在安装Linux系统时在分区时可以分配swap分区,而系统安装后如何建立或调整swap分区呢?
在装完Linux系统之后,建立swap分区有两种方法。

  1. 新建磁盘分区作为swap分区

  2. 用文件作为swap分区(操作更简单)

下面介绍这两种方法:

新建磁盘分区作为swap分区

  1. 用fdisk或lvm命令对磁盘进行分区或建立逻辑卷,添加swap分区,新建分区,在fdisk中用“t”命令将新添的分区id改为82(Linux swap类型),最后用w将操作实际写入硬盘(没用w之前的操作是无效的)。

  2. 格式化swap分区

1
mkswap /dev/sdb2 #这里的sdb2要看增加分区后显示的实际分区设备名
  1. 启用分区
1
swapon /dev/sdb2 #启用swap分区
  1. 为了让系统启动时能自动启用这个交换分区,可以编辑/etc/fstab,加入下面一行
1
/dev/sdb2 swap swap defaults 0 0

用文件作为swap分区

  1. 创建要作为swap分区的文件:增加1GB大小的交换分区,则命令写法如下,其中的count等于想要的块的数量(bs*count=文件大小)。
1
dd if=/dev/zero of=/root/swapfile bs=1M count=2048
  1. 格式化交换分区文件:
1
mkswap /root/swapfile #建立swap的文件系统
  1. 启用交换分区文件:
1
swapon /root/swapfile #启用swap文件

使用 free -g 即可查看到新增的swap,但是这只是临时增加交换分区,想要永久生效需要写入/etc/fstab文件。

  1. 为了让系统启动时能自动启用这个交换分区,可以编辑/etc/fstab,加入下面一行
1
/root/swapfile swap swap defaults 0 0

其它命令

查看是哪个进程使用了 swap:

  1. 使用 top 命令,然后再按 f,选中 swap,即可显示哪个进程使用了多少 swap 空间。然后要释放的话,把那个进程重起下即可。

  2. 查看 swap 使用的哪个分区使用 swapon -s 命令。使用 swapoff -a 可以关闭所有交换分区。

作者

孤独小狼

发布于

2022-03-26

更新于

2022-03-26

许可协议

评论