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分区的可用性
尝试以下几种方法:
手动增加内存负载
你可以通过运行一个内存占用较高的程序来强制系统使用 swap。例如,可以使用 stress 工具来创建内存负载:apt-get install stress # 安装 stress 工具 stress --vm 2 --vm-bytes 1G --timeout 10s # 创建负载这将启动两个内存占用 1GB 的虚拟内存进程,并持续 10 秒钟。此时可以检查是否触发了 swap。
- 手动清除缓存
你可以通过以下命令释放缓存,减少内存占用,触发 swap 使用:
sync; echo 3 > /proc/sys/vm/drop_caches然后观察 swapon --show 和 vmstat 看是否有 swap 使用。
评论