15人参与 • 2026-03-12 • Linux
在 ubuntu 系统(包括 18.04、20.04、22.04 等版本)中,swap 交换空间是虚拟内存,用于在物理 ram 不足时扩展内存。默认情况下,ubuntu 通常创建一个 1-2 gb 的 swap 文件(位于 /swapfile)。修改 swap 大小的原因可能是运行内存密集型任务(如机器学习、视频编辑)时出现 oom(out of memory)错误。
注意事项:
sudo。gparted 工具),建议在单用户模式或 live usb 下操作。以下是两种常见方法:调整现有 swap 文件(推荐,简单无风险)和创建新 swap 文件(如果现有 swap 不足)。我将以调整为 8 gb 为例。
查看当前 swap 信息
运行命令确认当前 swap 大小和位置:
sudo swapon --show
或
free -h
输出示例:
name type size used prio /swapfile file 1g 0b -2
这显示 swap 文件位于 /swapfile,大小 1 gb。
停用当前 swap
sudo swapoff -a
(这会暂时禁用 swap,确保没有进程在使用它。如果系统内存紧张,此步可能失败——先关闭不必要程序。)
删除旧 swap 文件
sudo rm /swapfile
(确认文件已删除:ls /swapfile 应无输出。)
创建新 swap 文件(例如 8 gb)
使用 fallocate(更快)或 dd(更兼容):
(bs=1g count=8 表示块大小 1 gb,创建 8 个块。)
fallocate 方法:
sudo fallocate -l 8g /swapfile
dd 方法(如果 fallocate 不可用):
sudo dd if=/dev/zero of=/swapfile bs=1g count=8
设置权限(仅 root 可读写):
sudo chmod 600 /swapfile
格式化为 swap:
sudo mkswap /swapfile
启用新 swap:
sudo swapon /swapfile
永久生效(开机自动挂载):
编辑 /etc/fstab 文件:
sudo nano /etc/fstab
在文件末尾添加一行(如果已存在 /swapfile none swap sw 0 0,无需重复):
/swapfile none swap sw 0 0
保存退出(ctrl+o, enter, ctrl+x)。
验证:
sudo swapon --show free -h
应显示新大小 8 gb。
如果不想修改现有 swap,可创建新文件(例如 /newswapfile)并启用。步骤类似方法一的 4-9,但路径改为 /newswapfile,并在 /etc/fstab 中添加相应行。
如果使用分区(非文件),需:
sudo swapoff -a。gparted(sudo apt install gparted)调整分区大小(需未分配空间)。sudo mkswap /dev/sdx(x 为分区,如 sda3)。/etc/fstab 和 sudo swapon /dev/sdx。调整 swappiness(swap 使用倾向):默认 60(内存用 40% 后开始 swap)。设为 10(更倾向内存)或 0(禁用 swap):
sudo sysctl vm.swappiness=10
永久:编辑 /etc/sysctl.conf 添加 vm.swappiness=10,然后 sudo sysctl -p。
优先级:如果多个 swap,设置优先级:sudo mkswap -p 10 /swapfile(数字越高优先)。
如果遇到错误(如“no space left”),检查磁盘空间:df -h。对于特定 ubuntu 版本(如 24.04),步骤类似,但确认文件位置。
如果你的系统是服务器或有特殊配置,建议提供更多细节(如 swapon --show 输出)以进一步诊断。
以上就是ubuntu修改swap交换空间大小的三种方法的详细内容,更多关于ubuntu修改swap交换空间大小的资料请关注代码网其它相关文章!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论