调节 Ubuntu 的 Swap 大小

调节 Ubuntu 的 Swap 大小,核心是对 Swap 文件 (Ubuntu 现代版本默认使用)或 Swap 分区 进行调整,以下是详细、可操作的步骤,优先推荐更灵活的 Swap 文件调整法

前提:查看当前 Swap 状态

  1. 查看当前 Swap 位置、大小和启用状态

    bash 复制代码
    swapon --show

    输出示例(/swapfile 是默认的 Swap 文件):

    复制代码
    NAME      TYPE SIZE USED PRIO
    /swapfile file 4G   0B   -2
  2. 确认内存和 Swap 的整体使用情况

    bash 复制代码
    free -h

核心方法:调整 Swap 文件大小(推荐)

此方法无需分区操作,灵活可控,步骤如下:

  1. 关闭当前 Swap 文件
    必须先关闭正在使用的 Swap,否则无法修改

    bash 复制代码
    sudo swapoff /swapfile
  2. 调整 Swap 文件大小
    增大减小 两种场景:

    • 场景1:增大 Swap 文件
      比如要将 Swap 从 4GB 调整为 8GB,直接创建新的 Swap 文件(会覆盖旧文件)

      bash 复制代码
      # 创建 8GB 的 Swap 文件(bs=1M 表示块大小1MB,count=8192 表示8192个块,即8GB)
      sudo fallocate -l 8G /swapfile

      fallocate 命令失败,改用 dd 命令:

      bash 复制代码
      sudo dd if=/dev/zero of=/swapfile bs=1M count=8192
    • 场景2:减小 Swap 文件
      比如要将 Swap 从 4GB 调整为 2GB,先删除旧文件,再创建新文件

      bash 复制代码
      # 删除旧 Swap 文件
      sudo rm /swapfile
      # 创建 2GB 新 Swap 文件
      sudo fallocate -l 2G /swapfile
  3. 设置 Swap 文件权限
    Swap 文件权限必须为 600,否则系统会拒绝使用

    bash 复制代码
    sudo chmod 600 /swapfile
  4. 格式化 Swap 文件
    将文件标记为 Swap 格式

    bash 复制代码
    sudo mkswap /swapfile
  5. 重新启用 Swap 文件

    bash 复制代码
    sudo swapon /swapfile
  6. 设置开机自动挂载(永久生效)
    编辑 /etc/fstab 文件,确保重启后 Swap 自动加载

    bash 复制代码
    sudo nano /etc/fstab

    确认文件内有以下一行(没有则添加):

    复制代码
    /swapfile none swap sw 0 0

    Ctrl+O 保存,Ctrl+X 退出。

  7. 验证调整结果
    再次执行命令,查看 Swap 大小是否更新

    bash 复制代码
    swapon --show
    free -h

备选方法:调整 Swap 分区大小(适合旧系统)

如果你的系统使用的是 Swap 分区 (而非文件),调整步骤更复杂,需要借助分区工具(如 gparted),步骤如下:

  1. 安装分区工具

    bash 复制代码
    sudo apt install gparted
  2. 关闭 Swap 分区

    bash 复制代码
    sudo swapoff /dev/sdXn  # 替换为你的Swap分区,比如 /dev/sda3
  3. 打开 GParted,右键 Swap 分区,选择 禁用,然后调整分区大小(需保证相邻分区有未分配空间)

  4. 右键调整后的分区,选择 格式化为linux-swap

  5. 重新启用 Swap 分区

    bash 复制代码
    sudo swapon /dev/sdXn
  6. 更新 /etc/fstab 中的 Swap 分区 UUID(若分区 UUID 变化)

    bash 复制代码
    sudo blkid  # 查看新的Swap分区UUID
    sudo nano /etc/fstab  # 替换旧的UUID

重要建议:Swap 大小设置参考

Swap 大小没有固定标准,可根据物理内存容量选择:

物理内存 建议 Swap 大小 适用场景
≤ 4GB 2 × 物理内存 日常办公、轻度使用
4GB - 16GB 等于物理内存 多任务、开发、虚拟机
≥ 16GB 4GB - 8GB 大型软件、服务器

我可以帮你编写一个Swap大小一键调整脚本,输入目标大小就能自动完成所有步骤,需要吗?

相关推荐
xuhe22 分钟前
[全流程详细教程]Docker部署ClawBot, 使用GLM4.7, 接入TG Bot实现私人助理. 解决Docker Openclaw Permission Denied问题
linux·docker·ai·github·tldr
Lsir10110_18 分钟前
【Linux】进程信号(下半)
linux·运维·服务器
liuniu081819 分钟前
VMware虚拟机安装ubuntu2022
ubuntu·ros
skywalk816334 分钟前
unbound dns解析出现问题,寻求解决之道
运维·服务器·dns·unbound
酉鬼女又兒36 分钟前
零基础入门Linux指南:每天一个Linux命令_pwd
linux·运维·服务器
云飞云共享云桌面38 分钟前
高性能图形工作站的资源如何共享给10个SolidWorks研发设计用
linux·运维·服务器·前端·网络·数据库·人工智能
skywalk816340 分钟前
走近科学:unbound dns域名服务器自己本地解析出现问题,寻求解决之道
运维·服务器·dns·unbound
zl_dfq40 分钟前
Linux 之 【多线程】(pthread_xxx、轻量级进程、原生线程库、线程ID、__thread、线程栈、线程与信号、线程与程序替换)
linux
choke23341 分钟前
Python 基础语法精讲:数据类型、运算符与输入输出
java·linux·服务器
袁煦丞 cpolar内网穿透实验室44 分钟前
远程调试内网 Kafka 不再求运维!cpolar 内网穿透实验室第 791 个成功挑战
运维·分布式·kafka·远程工作·内网穿透·cpolar