Linux系统开启交换分区
侧边栏壁纸
  • 累计撰写 4 篇文章
  • 累计收到 0 条评论

Linux系统开启交换分区

你的云
2026-01-21 / 0 评论 / 33 阅读 / 正在检测是否收录...

ubuntu/debian

创建交换分区

1.使用 dd 命令创建交换文件

dd if=/dev/zero of=/mnt/swap bs=1M count=1024
#- `if=/dev/zero`:表示从 `dev/zero`(零填充)设备读取数据。
#- `of=/mnt/swap`:指定交换文件的目标路径。
#- `bs=1M`:每个块的大小为 1MB。
#- `count=1024`:创建 1024 个 1MB 的块,总大小为 1GB。

创建完成后,可以检查文件大小:

ls -lh /mnt/swap

输出应该显示 1GB 左右的文件大小。

设置正确的权限

交换文件必须具有正确的权限,只有 root 用户才能读取和写入该文件。

chmod 0600 /mnt/swap

格式化交换文件

使用 mkswap 命令格式化交换文件,以使其成为可用的交换空间。

mkswap /mnt/swap

启用交换文件

启用交换文件:

swapon /mnt/swap

使用 swapon --show 查看当前启用的交换设备,确认是否成功启用:

swapon --show

你应该能看到类似如下的输出,显示 swap 文件的路径、大小等信息:

NAME      TYPE  SIZE USED PRIO
/mnt/swap file 1024M   0B   -2

将交换文件添加到 /etc/fstab

为了确保系统在重启后自动启用交换文件,需要将其添加到 /etc/fstab 文件中。
直接通过命令追加条目到 /etc/fstab:

echo "/mnt/swap none swap sw 0 0" | tee -a /etc/fstab

如果你使用的是 systemd,运行以下命令重新加载配置:

systemctl daemon-reload

附:

测试swap分区的可用性
尝试以下几种方法:

  1. 手动增加内存负载
    你可以通过运行一个内存占用较高的程序来强制系统使用 swap。例如,可以使用 stress 工具来创建内存负载:

    apt-get install stress  # 安装 stress 工具
    stress --vm 2 --vm-bytes 1G --timeout 10s  # 创建负载

    这将启动两个内存占用 1GB 的虚拟内存进程,并持续 10 秒钟。此时可以检查是否触发了 swap。

  2. 手动清除缓存
    你可以通过以下命令释放缓存,减少内存占用,触发 swap 使用:
sync; echo 3 > /proc/sys/vm/drop_caches

然后观察 swapon --show 和 vmstat 看是否有 swap 使用。

1

评论

博主关闭了所有页面的评论