在本机部署AI时,比如ComfyUI生图等,遇到比较大的模型,加载它们需要很大的内存,或者是显存不够,需要与内存交换时,就需要较大的内存。
如果内存也不够,就可能通过页面文件(PageFile)扩展Swap内存,在Windows设置比较方便,下面分享在Linux的设置页面文件方法。
- 切换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
优化交换参数
- 调整交换倾向(针对 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
- 应用设置:
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







暂无评论内容