调节 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大小一键调整脚本,输入目标大小就能自动完成所有步骤,需要吗?

相关推荐
txinyu的博客2 小时前
用户态与内核态
linux·运维·服务器
爱喝水的鱼丶2 小时前
SAP-ABAP:从SAP中暴露REST API:完整实操SICF接口开发指南
运维·开发语言·api·sap·abap·rest·接口开发
鸠摩智首席音效师2 小时前
如何在 Docker 容器下运行 cronjob ?
运维·docker·容器
橙露3 小时前
Kubernetes 集群运维:故障排查、资源调度与高可用配置
运维·容器·kubernetes
天空属于哈夫克33 小时前
企微API+RPA(机器人流程自动化)高效实战指南
linux·运维·服务器·自动化·企业微信·rpa
EndingCoder3 小时前
性能优化:类型系统的最佳实践
linux·前端·javascript·ubuntu·性能优化·typescript
自动化控制仿真经验汇总3 小时前
楼宇自动化智能控制系统-EXP-楼宇智能-多通道
运维·自动化
一个平凡而乐于分享的小比特3 小时前
Linux根文件系统各文件夹作用详解
linux
hmywillstronger3 小时前
【Rhino】【Python】对包含特定关键词的文字的MTEXT对象添加指定内容
linux·服务器·python