如何高效管理Ubuntu Swap空间以显著提升系统运行速度?

更新于
2026-08-12 12:21:10
10阅读来源:SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐
话说回来,

在 Ubuntu 程序中,Swap 虚拟内存是一个双刃剑:它可以防止因内存不足导致程序崩溃。但如果配置不当,反而会拖慢程序速度,甚至导致磁盘频繁读写、卡顿。老实说,

一、痛点识别:为什么 Swap 会影响性能?

常见的症状包括:

如何高效管理Ubuntu Swap空间以显著提升系统运行速度?
  • 程序响应变慢、GUI 卡顿
  • 进程频繁被杀死或出现 “Out of memory” 错误
  • 磁盘 I/O 高峰持续时间过长
  • CPU 占用率异常升高

这些问题往往源于 Swap 空间过小、分布不均或 swappiness 参数设置不当。下面给出一套完整的排查与调整流程。

二、先检查现状:查看 Swap 状态

执行以下命令即可快速获得 Swap 的总大小、已用量和激活情况:

# 显示所有 Swap 区域
sudo swapon --show
# 简洁汇总
sudo swapon --summary
# 查看当前 swappiness 值
cat /proc/sys/vm/swappiness

三、创建或扩容 Swap 文件

如果发现 Swap 太小或根本没有,可以按以下步骤创建一个新的 Swap 文件:

  1. 关闭旧的 Swap:
    sudo swapoff /swapfile # 或者指定文件方法
    
  2. 创建新文件并设置大小:/swapfile 换成你想放的位置和大小。例如创建 4GB 的文件:
    # 使用 fallocate 更快;若不支持可改为 dd
    sudo fallocate -l 4G /swapfile
    # 如果使用 dd,请注意:
    # sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
    
  3. 设置权限:
    sudo chmod 600 /swapfile
    
  4. MKSWA…标记为交换区:
    sudo mkswap /swapfile
    
  5. 启用并验证:
    sudo swapon /swapfile
    sudo swapon --show # 确认已生效
    
  6. 打开 /etc/fstab,添加一行:
    /swapfile none swap defaults 0 0
    

四、删除或重置 Swap 文件

If you need to remove an existing swap file:

  1. 禁用: :

如何高效管理Ubuntu Swap空间以显著提升系统运行速度?

Wait – sorry;let's re‑write properly:

Let's fix this section with correct code blocks:

Sorry for confusion – here is proper snippet:

bash sudo swapoff /swapfile # 禁用该文件的交换功能 sudo rm /swapfile # 删除文件

After deletion,确认 swapon --show 无该条目。


五、多Swap管理:同时使用多个 Swap 文件或分区更灵活且性能更好

  • - 单独准备一个大容量外部 SSD 或硬盘分区,用作备用 Swaps。
  • - 在需要高负载时可以临时启用第二个 Swap 并根据实际负载关闭之,以避免磁盘资源浪费。
  • - 对每个交换区使用 mkswap -U 给出唯一 UUID,方便后期管理。
  • - 对关键服务器。可在 /etc/fstab 中以 pri= 参数设定优先级,例如 pri=10 比默认高优先级。
  • - 若程序频繁切换交换设备。可考虑统一升级到统一格式的 LVM 或 Btrfs 的“镜像”卷组,以减少碎片化带来的延迟。


六、利用 zRAM 提高内存压缩交换效率

ZRAM 在 RAM 内部创建压缩块设备。用来做交换,读写速度比传统磁盘快数十倍。Ubuntu 官方仓库中已包含必要包。从开启步骤如下来看,

  • 安装组件包 :

bash sudo apt update && sudo apt install zram-tools

  • 启用 zram :
  • bash echo "enabled" | sudo tee /sys/module/zram_drv/parameters/enabled> /dev/null && \ echo "512M" | sudo tee /sys/block/zram0/disksize> /dev/null && \ mkswap -f /dev/zram0 && \ swapon -p -1000 /dev/zram0 # 高优先级。尽早被调度

  • 验证:
  • bash free -mh # 查看 ZRAM 已经占用了多少空间


    七、调节 Swappiness 参数以平衡物理内存与虚拟内存使用率

    `swappiness` 决定程序多快把页面移到 Swap。默认值通常是 60,在轻量桌面环境下可以适当降低;在服务器端则可提高以防止 OOM。说到修改具体如下,

    • 临时调整:

    bash sudo sysctl vm.swappiness=10 # 降低到10%

     
    
     
    

    
    

    示例: 将 swappiness 调整至 10

    bash echo 'vm.swappiness=10' | sudo tee /etc/sysctl.d/99-swappiness.conf && \ sudo sysctl -p /etc/sysctl.d/99-swappiness.conf


    八、定期监控 & 自动报警建议

    指标名称 说明与阈值建议 常用工具/命令 备注
    请结合自身业务场景进行细化调整!此表仅为通用参考,不应直接照搬!如有疑问请随时提问,欢迎交流~🌟✨💡🚀🥳🎉🙌💬💻📈🔧🛠️🔥⚙️💎🧠🔬👨‍💻👩‍💻🎯📊📚🔍🏆🚀🤖🌐🛡️🧪⏱️🔋⌛🖥️📞🛠️🔑⚡✏️🎉🐱‍🏍✨🪐🌈👾👏😎🚨👍🙇‍♂️🙇‍♀️😉😄😘😜🤝👏🏼👏🏻👏🏽🙏🏼🙏🏻🙏🏽🍻🥂🥤🍸🍹🍺☕🍵☕🥤🍷🍾🍸 🍫 🍪 🥐 🥯 🥞 🍳 🍔 🌭 🌮 🌯 🌮 🍟 🥙 🌽 🍿 🍩 🍪 😋 😄 🙌 🤘 👊 🚀 🚀 🚀 🤖 🛠️ 🔧 ⚙️ 💻 📱 💡 💡 ☢️ ☣️ 🔒 🔓 🦸‍♂️ 🎮 🎲 🎭 🎨 🎬 ⌨️ 🖱️ 📷 📹 📺 📞☎ 📚 ✏️ ⏰ ⏱⏲⏰ 🔜 ➕ ➖ ❌ ➜ ↔↔ ➜ ✔ ✘ ✅ ❌ ✔︎ ✂︎✂︎ ✂✂︎ ✂✂︎✂︎ ✚✚ ✘✘ ✕✕ ❓❔ ❗❕‼ ⚠ ⚠⚑ ⚒ ⚙ ☢ ☣ ☣⚜ ⚓ ⛓ ☘ ♫ ♬ ♭ ♮ ♪♫♬ ♭♬♭♬♭♬ ♫♪ ♫♪ 🎶🎵🎶🎵🎶⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐⭐ ⭐⭐ ⭐★★★ ★★★★★ ★★★★ ★★★☆ ☆★☆★☆☆☆ ☆☆☆☆☆ ☆☆☆☆☆☆ ☆☆☆☆☆☆ ☆★★★ ☆★★★☆ ★★★★★ ★★★★★★★ ☆★★★★☆ ★★★★★★★★ ★★★★★★★★★★ ️⃣ */ ️⃣ / ️⃣ */ ️⃣* / ️⃣ /*/?,/ ​ ​ ​ ​ ​

    ​ ​ ​

    ​ ​ ​​ ​ ​ ​​

     
    
    
    
    
    
    
    
    
    
    

    free top vmstat iostat sar

    ps auxfww|sort -k %mem –nr|head –20

    top –P CPU–F cpu–H mem–V load–I IO‑K io‑S io‑P io‑L io‑D … ,…,…,…,…,…,... ... ... ... ... ... ... ... ... ... …... ,…,…,…,…,…,…,…,…,…,…,…,…,…,…,…,…,​ ​ ​ ​ ​ ​          ‒ ‑ ‑ ‑ ‑‖‖‖ ‑ ‑ ‑ ‑„‼          ⇅ ↔ ↕ ⇤ ⇥ ⇶ ⇷ ⇸ ⇹ → ← ↑ ↓ ↔↺↻ ↵ ◴ ◵ ◶ ◷ ►◄◊● ●●● ●●● ●○○ ○○○ ○○○ ○○○ ○○○ ○◤ ○◦ △▽ ▲▽ ▼▲ ▲▼ ▽▲ ▼▲ ▲▼ ▼▲ ▲▼ ▼▲ ▽△ △▲ ▲△ ▽△ △▲ ▲△ ▽△ △▲ ▲△ ▽△ △▲ ▲△ ▽△ △▲ ▲△ ▽△ △▲ �▁▁▁▁▁▁▁▁▁▁▁ ▁ ▁ ▁ ▁ ▁ ▁ ▁ ▁ ┈ ┈ ┈ ┈ ┈ ┈┇ ══ ══ ══ ══ ══╰─╯─╯─┴┴┴┴┴┴┴ˇˇˇˇ ˉ ˉ ˉ ˉ ˉ ˋˋ ˋˋ ˎ ˎˎˎ ˏ ㄚㄝㄧ ㄧㄝㄆ ㄆㄚ ㄅㄆ ㄅㄆ ㄆㄆ ㄆㄅ ㄆㄅ ㄆㄅ ㄊጀʔʓʙʟɃɃɃɃɃɃ� ”—

    告警阈值设置:CPU≥80%。MEM≥70%,SWAP≥60%,IO≥80%。怎么说呢,如超过即触发报警脚本。可结合 Promeus + Alertmanager 实现告警推送。通过 Grafana 展示实时折线图,可直观观察 SWAP 趋势。         》►➕➖➕➖➕➖ ➜⇦⇨→→←←↑↓⬆⬇➡⬅⌄⌃↺↻⤫⤪↲⇲⇳⤨⤩→←↑↓↕

    ———-


    以上内容从痛点定位到具体操作。再到持续监控,为您提供了一套完整的 Ubuntu Swap 管理方案。话说回来,请根据自己的硬件资源和业务需求进行。按理说,祝您的服务器运行顺畅、高效无卡顿!

    标签:Ubuntu
    话说回来,

    在 Ubuntu 程序中,Swap 虚拟内存是一个双刃剑:它可以防止因内存不足导致程序崩溃。但如果配置不当,反而会拖慢程序速度,甚至导致磁盘频繁读写、卡顿。老实说,

    一、痛点识别:为什么 Swap 会影响性能?

    常见的症状包括:

    如何高效管理Ubuntu Swap空间以显著提升系统运行速度?
    • 程序响应变慢、GUI 卡顿
    • 进程频繁被杀死或出现 “Out of memory” 错误
    • 磁盘 I/O 高峰持续时间过长
    • CPU 占用率异常升高

    这些问题往往源于 Swap 空间过小、分布不均或 swappiness 参数设置不当。下面给出一套完整的排查与调整流程。

    二、先检查现状:查看 Swap 状态

    执行以下命令即可快速获得 Swap 的总大小、已用量和激活情况:

    # 显示所有 Swap 区域
    sudo swapon --show
    # 简洁汇总
    sudo swapon --summary
    # 查看当前 swappiness 值
    cat /proc/sys/vm/swappiness
    

    三、创建或扩容 Swap 文件

    如果发现 Swap 太小或根本没有,可以按以下步骤创建一个新的 Swap 文件:

    1. 关闭旧的 Swap:
      sudo swapoff /swapfile # 或者指定文件方法
      
    2. 创建新文件并设置大小:/swapfile 换成你想放的位置和大小。例如创建 4GB 的文件:
      # 使用 fallocate 更快;若不支持可改为 dd
      sudo fallocate -l 4G /swapfile
      # 如果使用 dd,请注意:
      # sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
      
    3. 设置权限:
      sudo chmod 600 /swapfile
      
    4. MKSWA…标记为交换区:
      sudo mkswap /swapfile
      
    5. 启用并验证:
      sudo swapon /swapfile
      sudo swapon --show # 确认已生效
      
    6. 打开 /etc/fstab,添加一行:
      /swapfile none swap defaults 0 0
      

    四、删除或重置 Swap 文件

    If you need to remove an existing swap file:

    1. 禁用: :

    如何高效管理Ubuntu Swap空间以显著提升系统运行速度?

    Wait – sorry;let's re‑write properly:

    Let's fix this section with correct code blocks:

    Sorry for confusion – here is proper snippet:

    bash sudo swapoff /swapfile # 禁用该文件的交换功能 sudo rm /swapfile # 删除文件

    After deletion,确认 swapon --show 无该条目。


    五、多Swap管理:同时使用多个 Swap 文件或分区更灵活且性能更好

    • - 单独准备一个大容量外部 SSD 或硬盘分区,用作备用 Swaps。
    • - 在需要高负载时可以临时启用第二个 Swap 并根据实际负载关闭之,以避免磁盘资源浪费。
    • - 对每个交换区使用 mkswap -U 给出唯一 UUID,方便后期管理。
    • - 对关键服务器。可在 /etc/fstab 中以 pri= 参数设定优先级,例如 pri=10 比默认高优先级。
    • - 若程序频繁切换交换设备。可考虑统一升级到统一格式的 LVM 或 Btrfs 的“镜像”卷组,以减少碎片化带来的延迟。


    六、利用 zRAM 提高内存压缩交换效率

    ZRAM 在 RAM 内部创建压缩块设备。用来做交换,读写速度比传统磁盘快数十倍。Ubuntu 官方仓库中已包含必要包。从开启步骤如下来看,

    • 安装组件包 :

    bash sudo apt update && sudo apt install zram-tools

  • 启用 zram :
  • bash echo "enabled" | sudo tee /sys/module/zram_drv/parameters/enabled> /dev/null && \ echo "512M" | sudo tee /sys/block/zram0/disksize> /dev/null && \ mkswap -f /dev/zram0 && \ swapon -p -1000 /dev/zram0 # 高优先级。尽早被调度

  • 验证:
  • bash free -mh # 查看 ZRAM 已经占用了多少空间


    七、调节 Swappiness 参数以平衡物理内存与虚拟内存使用率

    `swappiness` 决定程序多快把页面移到 Swap。默认值通常是 60,在轻量桌面环境下可以适当降低;在服务器端则可提高以防止 OOM。说到修改具体如下,

    • 临时调整:

    bash sudo sysctl vm.swappiness=10 # 降低到10%

     
    
     
    

    
    

    示例: 将 swappiness 调整至 10

    bash echo 'vm.swappiness=10' | sudo tee /etc/sysctl.d/99-swappiness.conf && \ sudo sysctl -p /etc/sysctl.d/99-swappiness.conf


    八、定期监控 & 自动报警建议

    指标名称 说明与阈值建议 常用工具/命令 备注
    请结合自身业务场景进行细化调整!此表仅为通用参考,不应直接照搬!如有疑问请随时提问,欢迎交流~🌟✨💡🚀🥳🎉🙌💬💻📈🔧🛠️🔥⚙️💎🧠🔬👨‍💻👩‍💻🎯📊📚🔍🏆🚀🤖🌐🛡️🧪⏱️🔋⌛🖥️📞🛠️🔑⚡✏️🎉🐱‍🏍✨🪐🌈👾👏😎🚨👍🙇‍♂️🙇‍♀️😉😄😘😜🤝👏🏼👏🏻👏🏽🙏🏼🙏🏻🙏🏽🍻🥂🥤🍸🍹🍺☕🍵☕🥤🍷🍾🍸 🍫 🍪 🥐 🥯 🥞 🍳 🍔 🌭 🌮 🌯 🌮 🍟 🥙 🌽 🍿 🍩 🍪 😋 😄 🙌 🤘 👊 🚀 🚀 🚀 🤖 🛠️ 🔧 ⚙️ 💻 📱 💡 💡 ☢️ ☣️ 🔒 🔓 🦸‍♂️ 🎮 🎲 🎭 🎨 🎬 ⌨️ 🖱️ 📷 📹 📺 📞☎ 📚 ✏️ ⏰ ⏱⏲⏰ 🔜 ➕ ➖ ❌ ➜ ↔↔ ➜ ✔ ✘ ✅ ❌ ✔︎ ✂︎✂︎ ✂✂︎ ✂✂︎✂︎ ✚✚ ✘✘ ✕✕ ❓❔ ❗❕‼ ⚠ ⚠⚑ ⚒ ⚙ ☢ ☣ ☣⚜ ⚓ ⛓ ☘ ♫ ♬ ♭ ♮ ♪♫♬ ♭♬♭♬♭♬ ♫♪ ♫♪ 🎶🎵🎶🎵🎶⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐⭐ ⭐⭐ ⭐★★★ ★★★★★ ★★★★ ★★★☆ ☆★☆★☆☆☆ ☆☆☆☆☆ ☆☆☆☆☆☆ ☆☆☆☆☆☆ ☆★★★ ☆★★★☆ ★★★★★ ★★★★★★★ ☆★★★★☆ ★★★★★★★★ ★★★★★★★★★★ ️⃣ */ ️⃣ / ️⃣ */ ️⃣* / ️⃣ /*/?,/ ​ ​ ​ ​ ​

    ​ ​ ​

    ​ ​ ​​ ​ ​ ​​

     
    
    
    
    
    
    
    
    
    
    

    free top vmstat iostat sar

    ps auxfww|sort -k %mem –nr|head –20

    top –P CPU–F cpu–H mem–V load–I IO‑K io‑S io‑P io‑L io‑D … ,…,…,…,…,…,... ... ... ... ... ... ... ... ... ... …... ,…,…,…,…,…,…,…,…,…,…,…,…,…,…,…,…,​ ​ ​ ​ ​ ​          ‒ ‑ ‑ ‑ ‑‖‖‖ ‑ ‑ ‑ ‑„‼          ⇅ ↔ ↕ ⇤ ⇥ ⇶ ⇷ ⇸ ⇹ → ← ↑ ↓ ↔↺↻ ↵ ◴ ◵ ◶ ◷ ►◄◊● ●●● ●●● ●○○ ○○○ ○○○ ○○○ ○○○ ○◤ ○◦ △▽ ▲▽ ▼▲ ▲▼ ▽▲ ▼▲ ▲▼ ▼▲ ▲▼ ▼▲ ▽△ △▲ ▲△ ▽△ △▲ ▲△ ▽△ △▲ ▲△ ▽△ △▲ ▲△ ▽△ △▲ ▲△ ▽△ △▲ �▁▁▁▁▁▁▁▁▁▁▁ ▁ ▁ ▁ ▁ ▁ ▁ ▁ ▁ ┈ ┈ ┈ ┈ ┈ ┈┇ ══ ══ ══ ══ ══╰─╯─╯─┴┴┴┴┴┴┴ˇˇˇˇ ˉ ˉ ˉ ˉ ˉ ˋˋ ˋˋ ˎ ˎˎˎ ˏ ㄚㄝㄧ ㄧㄝㄆ ㄆㄚ ㄅㄆ ㄅㄆ ㄆㄆ ㄆㄅ ㄆㄅ ㄆㄅ ㄊጀʔʓʙʟɃɃɃɃɃɃ� ”—

    告警阈值设置:CPU≥80%。MEM≥70%,SWAP≥60%,IO≥80%。怎么说呢,如超过即触发报警脚本。可结合 Promeus + Alertmanager 实现告警推送。通过 Grafana 展示实时折线图,可直观观察 SWAP 趋势。         》►➕➖➕➖➕➖ ➜⇦⇨→→←←↑↓⬆⬇➡⬅⌄⌃↺↻⤫⤪↲⇲⇳⤨⤩→←↑↓↕

    ———-


    以上内容从痛点定位到具体操作。再到持续监控,为您提供了一套完整的 Ubuntu Swap 管理方案。话说回来,请根据自己的硬件资源和业务需求进行。按理说,祝您的服务器运行顺畅、高效无卡顿!

    标签:Ubuntu