Ubuntu修改swap大小需先确认类型:若swapon --show显示TYPE为file且路径是/swapfile,则用文件方式调整;若为partition如/dev/sda2,则属高风险分区调整。推荐优先操作swapfile:依次执行sudo swapoff /swapfile、sudo rm /swapfile、sudo fallocate -l 8G /swapfile(失败则用dd)、sudo chmod 600 /swapfile、sudo mkswap /swapfile、sudo swapon /swapfile,再追加/swapfile none swap sw 0 0到/etc/fstab以确保开机生效,最后用free -h验证。

确认当前 Swap 类型和大小
先看清楚你用的是 /swapfile 还是 /dev/sdX 分区——这决定操作路径。运行:sudo swapon --show
如果输出里 TYPE 列是 file,路径是 /swapfile,说明你用的是 Swap 文件(Ubuntu 18.04+ 默认);如果是 partition,比如 /dev/sda2,那属于 Swap 分区,调整风险高,不建议直接扩容。
增大 /swapfile 大小(最常用场景)
绝大多数用户只需替换文件即可,不用动分区表。关键步骤顺序不能错:
- 停用当前 Swap:
sudo swapoff /swapfile(不是swapoff -a,避免误关其他可能存在的分区) - 删旧文件:
sudo rm /swapfile(确认已删:ls /swapfile应报 “No such file”) - 创建新文件:优先用
fallocate(快、无碎片):sudo fallocate -l 8G /swapfile;若提示 “Operation not supported”,换dd:sudo dd if=/dev/zero of=/swapfile bs=1G count=8 - 设权限:
sudo chmod 600 /swapfile(缺这步会启动失败,swapon报错 “swapon: /swapfile: insecure permissions 0644, 0600 recommended”) - 格式化:
sudo mkswap /swapfile - 启用:
sudo swapon /swapfile - 写入开机自动挂载:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab(注意是追加-a,别覆盖原 fstab)
验证是否生效且永久
运行 free -h,Swap 行的 total 应显示新大小;再查 cat /proc/swaps 确认路径和 priority 正常。重启后仍生效才算成功——很多人漏掉 /etc/fstab 这步,重启后又回到 1G。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
swappiness 值影响 Swap 使用倾向
Swap 文件大小只是容量,真正决定“什么时候用”是 vm.swappiness。默认值 60 会让系统较早把内存页移到 Swap,对 SSD 不友好。建议调低:
- 临时生效:
sudo sysctl vm.swappiness=10 - 永久生效:在
/etc/sysctl.conf末尾加一行:vm.swappiness=10
注意:这个值只在内存压力大时起作用,设为 0 并不等于禁用 Swap(swapoff 才是),而是让内核尽量保留数据在 RAM,仅当 OOM 前才写入 Swap。
Swap 文件路径固定为 /swapfile 是 Ubuntu 默认约定,别擅自改成 /opt/swap 或其他位置——fstab 和 initramfs 可能不识别,休眠(hibernate)也会失败。

















