玩AI电脑内存不够?页面文件(PageFile)来救急

在本机部署AI时,比如ComfyUI生图等,遇到比较大的模型,加载它们需要很大的内存,或者是显存不够,需要与内存交换时,就需要较大的内存。

如果内存也不够,就可能通过页面文件(PageFile)扩展Swap内存,在Windows设置比较方便,下面分享在Linux的设置页面文件方法。

  1. 切换root 用户
sudo su

建立页面文件

建立页面文件的硬盘必须使用高速SSD!

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

上面的命令就是在home目录下建立swapfile页面文件,大小16G。

设置只有 root 可读写

sudo chmod 600 /home/swapfile

格式化为交换文件

sudo mkswap /home/swapfile

启用交换文件

sudo swapon /home/swapfile

永久生效

编辑 /etc/fstab:

sudo nano /etc/fstab

添加下面这行:

/home/swapfile none swap sw 0 0

优化交换参数

  1. 调整交换倾向(针对 AI 工作负载)
sudo nano /etc/sysctl.d/99-comfyui-swap.conf

内容:

1. 对于 AI 工作负载,设置适中的交换倾向
vm.swappiness=20

1. 大页面支持(可选,对 AI 有帮助)
vm.nr_hugepages = 1024

1. 减少缓存压力
vm.vfs_cache_pressure=50

1. 针对大内存应用的优化
vm.dirty_ratio = 20
vm.dirty_background_ratio = 10
  1. 应用设置:
sudo sysctl --system

禁用交换文件

切换到 root 用户

sudo su

禁用指定的交换文件

sudo swapoff /home/swapfile

验证状态

1. 检查交换状态
swapon --show
free -h
1. 应该看不到 /home/swapfile

从 fstab 中移除配置

编辑 /etc/fstab 文件:

sudo nano /etc/fstab

找到并删除或注释掉这一行:

/home/swapfile none swap sw 0 0

删除交换文件

1. 删除交换文件
sudo rm /home/swapfile

清理相关配置(可选)

1. 删除或还原之前的 sysctl 配置
sudo rm /etc/sysctl.d/99-comfyui-memory.conf

1. 重新加载系统设置
sudo sysctl --system

推荐重启系统!

常见问题

如果交换文件仍被使用:

1. 检查哪个进程在使用交换
sudo lsof | grep /home/swapfile

1. 强制禁用交换
sudo swapoff -f /home/swapfile

如果文件被锁定:


1. 检查文件锁
sudo lslocks | grep swapfile

1. 如果有进程锁定,杀死相关进程
sudo pkill -f swapfile

如果删除文件时提示权限问题:

1. 确保有正确权限
sudo chattr -i /home/swapfile  # 如果设置了不可更改属性
sudo rm -f /home/swapfile
© 版权声明
THE END
若本文对您有帮助,欢迎点赞打赏转发
您的支持将是作者更新最大的动力
点赞25打赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容