2026年Ubuntu下如何设置虚拟内存(Swap分区)Ubuntu下如何设置虚拟内存(Swap分区)

Ubuntu下如何设置虚拟内存(Swap分区)Ubuntu下如何设置虚拟内存(Swap分区)Ubuntu 下配置 Swap 分区作为虚拟内存空间 虚拟内存是操作系统使用硬盘空间模拟内存的技术 当物理内存 RAM 不足时 系统会将不常用的数据暂时存入虚拟内存 即 Swap 空间 避免程序卡顿或系统崩溃 本文将详细介绍在 Ubuntu 系统中如何创建 启用和管理 Swap 虚拟内存 包括 Swap 文件和 Swap 分区两种常见方式 在 Linux 系统中 Swap 空间分为两种 Swap 分区 独立的磁盘分区

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



Ubuntu下配置Swap分区作为虚拟内存空间

虚拟内存是操作系统使用硬盘空间模拟内存的技术,当物理内存(RAM)不足时,系统会将不常用的数据暂时存入虚拟内存(即Swap空间),避免程序卡顿或系统崩溃,本文将详细介绍在Ubuntu系统中如何创建、启用和管理Swap虚拟内存,包括Swap文件和Swap分区两种常见方式。

在Linux系统中,Swap空间分为两种:

  • Swap分区:独立的磁盘分区,性能较高,但需要提前预留分区空间。
  • Swap文件:位于普通文件系统中的文件,创建灵活,适合云服务器或无法调整分区的情况。

对于大多数用户,Swap文件是更便捷的选择,本文以Swap文件为例讲解设置流程。

在设置Swap前,先通过命令查看当前系统的物理内存和Swap使用情况:

free -h

输出示例:

 total used free shared buff/cache available Mem: 7.7Gi 3.1Gi 2.2Gi 256Mi 2.4Gi 4.2Gi Swap: 2.0Gi 0.0Bi 2.0Gi
  • Mem行显示物理内存(total为总量,used已使用,available可用)。
  • Swap行显示Swap空间(若total0,说明当前未启用Swap)。

Swap大小的建议值:

  • 一般场景:物理内存的1-2倍(例如8GB内存可设置8-16GB Swap)。
  • 大型应用/服务器:物理内存的2-3倍(例如虚拟机、数据库服务器)。
  • 注意:Swap并非越大越好,过大的Swap可能导致硬盘IO压力增加。

假设我们要创建一个8GB的Swap文件,路径为/swapfile

使用fallocate命令快速分配文件空间(fallocate支持即时分配,无需实际写入数据,速度快):

sudo fallocate -l 8G /swapfile

fallocate不可用(如某些精简版系统),可用dd命令(较慢,但兼容性更好):

sudo dd if=/dev/zero of=/swapfile bs=1M count=8192
  • bs=1M:块大小为1MB;count=8192:8192个块,共8192MB=8GB。

Swap文件包含敏感数据,需限制访问权限(仅root可读写,避免其他用户访问):

sudo chmod 600 /swapfile

使用mkswap命令将文件格式化为Swap格式:

sudo mkswap /swapfile

输出示例:

Setting up swapspace version 1, size = 8 GiB ( bytes) no label, UUID=-abcd-1234-abcd-abc

记录输出的UUID(后续配置/etc/fstab时可能需要)。

通过swapon命令启用Swap文件:

sudo swapon /swapfile

再次运行free -h,查看Swap的total是否已更新为8GB:

free -h

输出示例:

 total used free shared buff/cache available Mem: 7.7Gi 3.1Gi 2.2Gi 256Mi 2.4Gi 4.2Gi Swap: 8.0Gi 0.0Bi 8.0Gi

Swap总量正确,说明Swap已启用。

当前Swap文件仅在本次开机有效,重启后会失效,需编辑/etc/fstab文件实现开机自动挂载:

方法1:直接使用文件路径(推荐)
echo ‘/swapfile none swap sw 0 0’ | sudo tee -a /etc/fstab
  • /swapfile:Swap文件路径;
  • none:表示文件系统类型为Swap;
  • sw:挂载参数,表示启用Swap;
  • 0 0:dump和fsck参数,Swap无需检查,设为0 0
方法2:使用UUID(避免文件路径变更)

若担心文件路径修改(如文件被移动),可通过UUID挂载:

  1. 查看Swap文件的UUID: 输出示例:/dev/sda1: UUID=“-abcd-1234-abcd-abc” TYPE=“swap”
    sudo blkid /swapfile
  2. 将UUID写入/etc/fstab
    echo ‘UUID=-abcd-1234-abcd-abc none swap sw 0 0’ | sudo tee -a /etc/fstab

若需要增加或减少Swap大小,需先禁用现有Swap,再重新创建:

# 1. 禁用Swap sudo swapoff /swapfile

2. 删除旧Swap文件(可选)

sudo rm /swapfile

3. 创建新大小的Swap文件(例如16GB)

sudo fallocate -l 16G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile

4. 重新启用并配置fstab

sudo swapon /swapfile echo ‘/swapfile none swap sw 0 0’ | sudo tee -a /etc/fstab

若不再需要Swap(例如内存充足的服务器),可禁用并删除:

 
  

1. 禁用Swap

sudo swapoff /swapfile

2.

小讯
上一篇 2026-04-13 14:11
下一篇 2026-04-13 14:09

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/259591.html