Liunx创建虚拟内存

  • 1217 字
  1. 1. 1. 检查当前 swap 状态
  2. 2. 2. 决定 swap 大小
  3. 3. 3. 创建 swap 文件
  4. 4. 4. 设置正确的权限
  5. 5. 5. 将文件格式化为 swap
  6. 6. 6. 启用 swap 文件
  7. 7. 7. 开机自动挂载
  8. 8. 8. (可选)调整 swap 使用倾向
  9. 9. 验证最终配置
    1. 9.1. 注意事项

1. 检查当前 swap 状态

首先查看系统是否已经配置了 swap:

1
sudo swapon --show

1
free -h

如果输出中没有显示任何 swap 分区或文件,说明当前没有启用虚拟内存。

2. 决定 swap 大小

常见建议:

  • 当物理内存 ≤ 2GB 时,swap 大小可设为内存的 1~2 倍。
  • 示例中我们创建 1GB 的 swap 文件,你可以根据磁盘剩余空间调整。

3. 创建 swap 文件

使用 fallocate 命令快速创建指定大小的文件(推荐):

1
sudo fallocate -l 1G /swapfile

如果 fallocate 不支持,可用 dd 命令替代(速度稍慢):

1
sudo dd if=/dev/zero of=/swapfile bs=1M count=1024 status=progress

4. 设置正确的权限

为了安全,swap 文件必须只能由 root 读写:

1
sudo chmod 600 /swapfile

5. 将文件格式化为 swap

1
sudo mkswap /swapfile

输出会显示该文件的 UUID 和大小。

6. 启用 swap 文件

1
sudo swapon /swapfile

再次检查 swap 是否生效:

1
sudo swapon --show

或查看内存使用情况:

1
free -h

7. 开机自动挂载

编辑 /etc/fstab 文件,使系统启动时自动启用 swap:

1
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

或者手动编辑(用 sudo nano /etc/fstab),在文件末尾添加:

1
/swapfile none swap sw 0 0

8. (可选)调整 swap 使用倾向

Linux 内核参数 swappiness 控制使用 swap 的积极程度(值范围 0~100,默认 60)。
对于内存较小的服务器,可以适当调低以减少磁盘 I/O:

1
2
3
4
5
# 临时修改(重启后失效)
sudo sysctl vm.swappiness=10

# 永久修改
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf

验证最终配置

重启服务器或执行以下命令确保 swap 正常工作:

1
2
sudo swapon --all   # 重新加载所有 swap(根据 fstab)
sudo swapon --show

注意事项

  • 磁盘空间:确保根分区有足够的剩余空间(df -h)。

  • 性能:swap 位于磁盘,比物理内存慢很多,仅作为内存不足时的补充。

  • 如果已有 swap 分区:上述操作会添加第二个 swap 空间,系统会同时使用它们。

分享
分享提示信息