linux使用swap

写评论

linux使用swap

卷心菜 卷心菜

在 Linux 系统中,创建 swap 文件(swapfile)是扩展系统虚拟内存的常用方法。以下是生成和启用 swap 文件的完整步骤:

  1. 创建一个空文件作为 swap 文件
    使用 dd 命令创建指定大小的文件(示例创建 4GB 的 swap 文件):
sudo dd if=/dev/zero of=/swapfile bs=1G count=4

  • if=/dev/zero:输入源(提供空数据)

  • of=/swapfile:输出文件路径

  • bs=1G:每次写入 1GB 数据块

  • count=4:写入 4 个数据块(总大小 4GB)

  1. 设置正确的文件权限
    限制 swap 文件的访问权限,仅允许 root 操作:
sudo chmod 600 /swapfile
  1. 将文件格式化为 swap 分区
    使用 mkswap 命令初始化 swap 文件:
sudo mkswap /swapfile
  1. 启用 swap 文件
    立即激活该 swap 文件:
sudo swapon /swapfile
  1. 设置开机自动挂载
    编辑 /etc/fstab 文件,添加以下行以确保系统启动时自动启用:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
  1. 验证 swap 是否生效
    使用以下命令检查 swap 状态:
sudo swapon --show  # 查看已启用的 swap
free -h             # 查看内存和 swap 使用情况

如果需要调整 swap 文件大小,可先禁用现有 swap 文件再重新创建:

sudo swapoff /swapfile
# 然后重复步骤 1-4 创建新的 swap 文件

注意:swap 文件的性能略低于独立的 swap 分区,但对于临时扩展虚拟内存非常实用。建议 swap 大小不超过物理内存的 2 倍(视实际需求而定)。除了 dd 命令,还可以使用 fallocate 命令来创建 swap 文件,这种方式更高效(直接分配磁盘空间而非逐块写入零值),速度更快,尤其适合创建大文件。

使用 fallocate 创建 swap 文件的步骤如下:

  1. 创建指定大小的文件
    例如创建 4GB 的 swap 文件:
sudo fallocate -l 4G /swapfile

  • -l 4G 表示指定文件大小为 4GB(支持 K、M、G 等单位)
  1. 设置权限(同前)
sudo chmod 600 /swapfile
  1. 格式化并启用 swap
sudo mkswap /swapfile
sudo swapon /swapfile
  1. 设置开机自动挂载(同前)
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

注意fallocate 并非在所有文件系统上都可用(例如不支持某些网络文件系统),但在主流的 ext4、xfs 等本地文件系统上表现良好。如果遇到 fallocate 无法使用的情况,再 fallback 到 dd 即可。

THE END

登录 后才能评论~