赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 云服务器 ECS
  4. 服务支持
  5. 云盘和内存问题
  6. 如何配置Linux实例的swap分区?

如何配置Linux实例的swap分区?

  • 云盘和内存问题
  • 发布于 2025-04-01
  • 0 次阅读
文档编辑
文档编辑

在Linux系统中,如果系统需要更多的内存资源并且物理内存已满时,将使用swap分区(交换空间)。使用交换空间为不活跃的进程和数据提供临时存储,并防止物理内存满时内存不足。交换空间充当物理内存的扩展,并允许系统在物理内存耗尽时继续平稳运行。

重要
  • 开启swap分区可能会导致内存I/O性能下降。当ECS实例内存不足时,建议优先通过修改实例规格增加实例的物理内存。若因业务需要开启swap分区,请参见本文进行配置。

  • 如果您使用的是普通云盘,不建议使用swap分区,因为其I/O性能较低,会导致性能下降和I/O瓶颈。其他类型云盘可以根据实际情况使用swap分区,但应合理配置以避免频繁的swap分区操作,确保系统性能和稳定性。

查看swap分区配置

  1. 远程登录Linux实例。

    具体操作,请参见通过密码或密钥认证登录Linux实例。

  2. 执行以下命令,查看swap分区的配置。

    swapon --show
    • 如果回显信息为空,表示系统没有swap分区,您可以根据需要配置swap分区。

      image

    • 如果出现类似以下回显信息,表示系统已开启swap分区,您可以根据需要关闭swap分区。

      image

配置swap分区

开启swap分区

  1. 执行以下命令,创建用于交换分区的文件。

    sudo dd if=/dev/zero of=/var/swap bs=1M count=1024
    说明

    其中:

    • of的值/var/swap是变量,表示交换分区的标识,请您自定义设置,该变量值不能和已有分区标识相同。

    • bs和count的值表示创建的交换文件的大小,您可以自定义设置,该命令中bs=1M count=1024表示设置交换文件的大小为1 GB。

  2. 执行以下命令,将文件格式化为swap分区。

    sudo mkswap /var/swap

    image

    说明

    如果使用mkswap命令创建swap时出现类似mkswap: error: swap area needs to be at least 40 KiB报错,表示指定的swap分区文件太小,swap分区文件至少应该大于40 KB,您需要重新创建更大的交换文件。

  3. 执行以下命令,开启swap分区。

    sudo chmod 600 /var/swap
    sudo swapon /var/swap
  4. 执行以下命令,验证swap分区是否已开启。

    swapon --show

    如下回显信息表示swap分区已开启。

    image

  5. 执行以下命令,查询swap分区的UUID信息以及文件系统类型。

    sudo blkid /var/swap

    image

  6. 编辑/etc/fstab文件,并添加以下挂载信息,配置开机自动挂载swap分区。

    UUID=1197b17e-270c-41fd-afcd-b252829d****   /     swap     defaults     1   1

    image

  7. (条件可选)编辑/etc/rc.local文件, 排查是否有swapoff -a 命令。如果有将其修改为 swapon -a,确保 /etc/rc.local 中的命令与 /etc/fstab 的配置一致,以确保swap分区能够正常启用。

相关操作

在Linux系统中,可以通过设置swappiness参数来确定系统对swap分区的使用原则,swappiness参数取值范围为0到100。

  • swappiness值越低,表示最大限度地使用物理内存,物理内存使用完毕后,才会使用swap分区。

  • swappiness值越高,表示积极地使用swap分区,并且把内存中的数据及时地置换到swap分区。

重要

调整swap参数是一项需要谨慎操作的任务,因为不恰当地修改可能会导致系统性能下降或虚拟内存使用不符合预期,请您根据实际业务场景并在充分了解参数作用的基础上谨慎操作。如果您不确定是否需要调整,建议保持默认配置。

  1. 编辑/etc/sysctl.conf文件,以物理内存少于10%时才使用swap分区为例,需要调整以下参数值。

    vm.swappiness=10
  2. 保存并退出,然后执行以下命令使配置生效。

    sudo sysctl -p
  3. 执行以下命令,验证swappiness参数配置是否生效。

    cat /proc/sys/vm/swappiness

    如下回显信息表示swappiness参数配置已生效。

    image

关闭swap分区

  1. 执行以下命令,关闭swap分区。

    sudo swapoff /var/swap
    说明

    其中/var/swap为swap分区标识,请您根据实际环境替换。

  2. 编辑etc/fstab文件,并删除类似以下的swap相关挂载信息,取消swap自动挂载。

    UUID=1197b17e-270c-41fd-afcd-b252829d****   /     swap     defaults     1   1
  3. 保存并退出,然后执行以下命令,确认swap分区是否已经关闭。

    swapon --show

    如果回显信息为空,表示系统已关闭swap分区。

    image

相关文章

Windows实例中C盘可用空间减少的排查思路 2025-04-01 12:00

本文介绍Windows系统的ECS实例导致C盘可用空间减少的原因及其解决方案。 问题现象 Windows系统的ECS实例出现C盘空间持续减少的情况,导致系统无法正常操作。 问题分析

Windows实例系统盘异常如何解决? 2025-04-01 12:00

本文主要介绍Windows实例的系统盘异常的解决方案。 背景信息

云盘扩容后使用growpart扩展GPT分区失败该如何处理? 2025-04-01 12:00

问题现象 云盘的分区格式为GPT,云盘进行云盘容量扩容后,使用growpart工具扩展分区(例如/dev/vdb1

启用Project Quota后,文件系统自动挂载失败该如何解决? 2025-04-01 12:00

本文主要介绍Linux实例启用Project Quota后,文件系统自动挂载失败的原因以及解决方案。 问题现象

如何修改auditd服务配置避免因磁盘空间不足导致实例自动关机 2025-04-01 12:00

问题现象 ECS实例在无任何操作的情况下会时不时出现自动关机的现象。当您重启实例后,过一段时间ECS实例会再次关机,通过查看系统日志(如

如何处理Linux实例中的OOM问题? 2025-04-01 12:00

Out of Memory(OOM)是Linux内核在系统内存严重不足时,强行释放进程内存的一种机制。出现大量的Out of Memory信息可能是因为系统内存资源不足,系统无法为程序或者进程分配足够的内存空间,从而导致程序无法正常运行或者进程无法读写数据。本文主要介绍当您的Linux实例存在OOM

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号