温馨提示×

Ubuntu中Swap空间如何管理

小樊
41
2025-11-14 19:04:17
栏目: 云计算

Ubuntu 中 Swap 空间管理

一 基础概念与查看

  • Swap 是 Linux 的虚拟内存机制,用于在物理内存不足时将不活跃的内存页换出到磁盘,从而避免内存耗尽导致崩溃。常见形态有 Swap 分区Swap 文件;在部分 虚拟机/云镜像 中可能未自动创建 Swap。Ubuntu 桌面版默认 swappiness=60(数值越大越积极使用 Swap)。常用查看命令:
    • 查看是否启用与详情:sudo swapon --show
    • 查看内存与 Swap 概览:free -h
    • 查看内核参数:cat /proc/sys/vm/swappiness
    • 查看所有交换项:cat /proc/swapsswapon -s
    • 实时监控:top/htopvmstatiostat

二 创建与启用 Swap

  • 创建 Swap 文件(推荐,便于调整大小)
    1. 创建文件(示例 2GB):sudo fallocate -l 2G /swapfile(如遇文件系统预分配问题,可改用 sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
    2. 安全权限:sudo chmod 600 /swapfile
    3. 格式化为 Swap:sudo mkswap /swapfile
    4. 启用:sudo swapon /swapfile
    5. 开机自动挂载:在 /etc/fstab 追加 /swapfile none swap sw 0 0
    6. 验证:swapon --showfree -h
  • 使用 Swap 分区
    1. 识别分区(示例):lsblk/sudo blkid
    2. 格式化:sudo mkswap /dev/sdXN
    3. 启用:sudo swapon /dev/sdXN
    4. 开机自动挂载(优先用 UUID 更稳定):echo "UUID=<你的UUID> none swap sw 0 0" | sudo tee -a /etc/fstab
    5. 验证:swapon --show

三 调整大小与删除

  • 调整 Swap 文件大小
    1. 停用:sudo swapoff /swapfile
    2. 扩容(示例增至 4GB):sudo dd if=/dev/zero of=/swapfile bs=1G count=2 oflag=append conv=notrunc
    3. 重新格式化:sudo mkswap /swapfile
    4. 启用:sudo swapon /swapfile
    5. 验证:free -h
  • 调整 Swap 分区大小
    • 需有相邻 未分配空间 才能扩展;可用 GParted 可视化操作:先“停用交换空间”,再“调整大小/移动”,最后“启用”。若与根分区相邻且无空闲,通常需先挪动分区或迁移到其他磁盘再调整。
  • 删除 Swap
    • 停用:sudo swapoff /swapfilesudo swapoff /dev/sdXN
    • /etc/fstab 删除对应行
    • 删除文件:sudo rm /swapfile;或删除并回收分区(使用分区工具)

四 优化与多 Swap 管理

  • 调整 swappiness(控制内核使用 Swap 的积极程度)
    • 查看:cat /proc/sys/vm/swappiness
    • 临时修改:sudo sysctl vm.swappiness=10(示例值)
    • 永久生效:在 /etc/sysctl.conf 添加 vm.swappiness=10 后执行 sudo sysctl -p
  • 设置 Swap 优先级(多 Swap 时生效)
    • 启用时指定:sudo swapon -p 10 /dev/sdXNsudo swapon -p 10 /swapfile
    • 已启用需先停用全部再按优先级启用:sudo swapoff -a 后依次 swapon -p <优先级> <目标>
  • 监控与排障
    • 命令行:free -hswapon --showcat /proc/swapsvmstat 1iostat -x 1top/htop
    • 图形化:GNOME System Monitor(系统监视器)查看内存与 Swap

五 容量建议与注意事项

  • 容量建议
    • 仅作应急/休眠:Swap 略大于内存即可(如 +1–2GB)。
    • 内存紧张或需休眠:Swap 建议 ≈内存大小 或更高(休眠需能容纳全部内存映像)。
    • 无 SSD、I/O 敏感场景:适度降低 Swap 或提高 swappiness 的阈值,避免频繁换页导致卡顿。
  • 注意事项
    • 使用 fallocate 创建大文件在某些文件系统上可能预分配不完整,出现启用失败;此时改用 dd 更稳妥。
    • 多 Swap 并存时通过 优先级 控制使用顺序,避免低效设备抢占。
    • 云服务器/部分虚拟化环境可能默认关闭或未配置 Swap,需确认厂商策略后再启用。

0