# ubuntu创建交换内存 ## 检查当前配置 ``` sudo swapon --show free -h ``` ## 创建交换文件 ``` sudo fallocate -l 4G /swapfile #如果 fallocate 命令有问题则使用dd #sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 status=progress ``` ## 设置权限 交换文件必须只有 root 用户才有读写权限,否则会有安全风险。 ``` sudo chmod 600 /swapfile ``` ## 格式化为交换空间 ``` sudo mkswap /swapfile ``` ## 启用交换文件 ``` sudo swapon /swapfile ``` 运行`sudo swapon --show`或`free -h`查看交换空间是否生效 ## 永久生效 ``` sudo cp /etc/fstab /etc/fstab.bak # 可选,建议先备份 sudo vi /etc/fstab ``` 在最后一行添加 ``` /swapfile none swap sw 0 0 ``` ## 调整 Swappiness 值(可选) swappiness 参数决定了系统有多频繁地使用交换空间。值范围从 0 到 100。 - 0:尽量不使用交换空间。 - 100:积极使用交换空间。 查看当前值: ``` cat /proc/sys/vm/swappiness ``` 临时修改(重启后失效): ``` sudo sysctl vm.swappiness=30 ``` 永久修改:编辑 /etc/sysctl.conf 文件: ``` sudo vi /etc/sysctl.conf ``` 末尾添加 ``` vm.swappiness=30 ``` 保存文件,然后运行以下命令应用更改: ``` sudo sysctl -p ``` ## 调整缓存压力(可选) vfs_cache_pressure 控制内核回收用于缓存目录和 inode 对象的内存的倾向。默认值也是 100。将其设置为较低的值(如 50),会让系统更多地缓存这些信息,可能提升性能。 同样,在`/etc/sysctl.conf`文件中添加: ``` vm.vfs_cache_pressure=50 ``` 保存后,同样运行`sudo sysctl -p`来应用。