如何开启 DigitalOcean Droplet 的 Swap 分区防止内存溢出?

文章导读
在 DigitalOcean Droplet 上开启 Swap 分区可以通过创建交换文件来实现,主要步骤包括使用 dd 命令创建文件、mkswap 格式化、swapon 激活以及修改 fstab 实现开机挂载。但需注意,DigitalOcean 官方建议由于 SSD 磨损问题,优先升级 Droplet 内存而非使用 Swap。若必须开启,建议设置合理的 swappiness 值以减少磁盘写入,防止
📋 目录
  1. 解决系统内存不足:利用 swap 分区应对内存溢出-CSDN 博客
  2. 配置与管理 Swap 分区解决内存不足 - 云服务器 ECS-阿里云
  3. 逻辑卷实战案例-swap 分区
  4. FAQ
A A

在 DigitalOcean Droplet 上开启 Swap 分区可以通过创建交换文件来实现,主要步骤包括使用 dd 命令创建文件、mkswap 格式化、swapon 激活以及修改 fstab 实现开机挂载。但需注意,DigitalOcean 官方建议由于 SSD 磨损问题,优先升级 Droplet 内存而非使用 Swap。若必须开启,建议设置合理的 swappiness 值以减少磁盘写入,防止内存溢出导致进程被杀。

解决系统内存不足:利用 swap 分区应对内存溢出-CSDN 博客

如果没有 swap 占用内存最高的进程将被系统杀死 什么情况导致内存过高?称为内存溢出 oomout of memory 1) 流量达到了上限 (流量就是用户 访客多) 2) 被攻击 3) 由于网络或者程序波动引起的突发性内存升高 解决方案:1) 增加内存 2) 增加安全防护功能 3) 由于网络波动引起加 swap 分区 平时业务 2M 左右内存 目前内存 6M 波动一下可能达到 10M 可以通过 swap 来解决 swap 可以在安装系统的时候进行划分 swap 可以在系统中进行临时划分 swap swap 占用的磁盘空间 查看 swap 分区:[root@oldboyedu ~]# free -h total used free shared buff/cache available Mem: 1.8G 91M 1.6G 9.6M 123M 1.6G Swap: 1.0G 0B 1.0G 添加扩展 swap 分区:第一步:生成一个 200M 的磁盘空间 dd 命令 if inputfile# 内容从哪里来 of output file# 输出到哪里 bs bloksize# 每次复制多大 count 记数 #复制的次数 [root@oldboyedu ~]# dd if=/dev/zero of=/tmp/2G bs=1M count=2000 200+0 records in 200+0 records out 209715200 bytes (210 MB) copied, 2.98662 s, 70.2 MB/s [root@oldboyedu ~]# ll -h /tmp/200m -rw-r--r-- 1 root root 200M May 26 12:09 /tmp/200m 第二步:将 200M 的文件进行格式化成 swap 分区 [root@oldboyedu ~]# mkswap /tmp/200m Setting up swapspaceversion1, size = 204796 KiB no label,UUID=cb5c1fa7-f7b6-4a3a-811d-146e953da8ed 第三步:挂载 swap 分区 激活 swap [root@oldboyedu ~]# free -h total used free shared buff/cache available Mem: 1.8G 92M 1.4G 9.6M 329M 1.6G Swap: 1.0G 0B 1.0G [root@oldboyedu ~]# swapon /tmp/200m swapon: /tmp/200m: insecure permissions 0644, 0600 suggested. [root@oldboyedu ~]# free -h total used free shared buff/cache available Mem: 1.8G 92M 1.4G 9.6M 329M 1.6G Swap: 1.2G 0B 1.2G 第四步:加入开机自动挂载 vim /etc/fstab /tmp/200m swap swap defaults 0 0 第五步:卸载 关闭 [root@oldboyedu ~]# swapoff /tmp/200m [root@oldboyedu ~]# free -h total used free shared buff/cache available Mem: 1.8G 91M 1.4G 9.6M 329M 1.6G Swap: 1.0G 0B 1.0G 查看 swap 的组成:[root@oldboyedu ~]# swapon -s FilenameTypeSize Used Priority /dev/sda2 partition 1048572 0 -1

配置与管理 Swap 分区解决内存不足 - 云服务器 ECS-阿里云

步骤一:检查当前 Swap 状态 官方文档 云服务器 ECS 开始使用 什么是云服务器 ECS 图说云服务器 ECS 快速入门 使用限制 地域和可用区 实例 实例概述与选型 创建实例 连接实例 管理与配置实例 升降配实例 释放实例 镜像 了解镜像 镜像类型 自定义镜像管理 操作系统更换与迁移 操作系统维护周期和 EOL 应对方案 块存储 了解块存储 管理云盘 扩容云盘 性能测试 云盘容灾 快照 了解快照 创建快照 自动快照策略 使用快照 删除快照 快照一致性组 网络 网络带宽 IP 地址与私网域名解析 弹性网卡 网络性能增强 安全组 前缀列表与端口列表 更换专有网络 VPC 或交换机 VPC 流量加密 部署与弹性 容量保障与预定 自动化部署与弹性 高可用架构 运维与监控 云助手 自助问题排查 实例监控与告警 ECS 使用成熟度评估与洞察 任务管理 系统运维管理 OOS 计算 AI 助手使用指南 ECS 全局搜索 小规格 ECS 实例 Linux 内存管理的运维实践 安全合规 使用须知 ECS 专属安全防护包免费使用指南 ECS 的安全责任共担模型 云服务器 ECS 安全性 基础安全服务 身份与权限 安全与合规治理 可信计算与机密计算 相关协议 迁移服务 服务器与系统迁移 应用与数据库迁移 ECS 服务器过户 实践教程 标签与资源 AIGC 实践 Linux 基础教程 Windows 基础教程 搭建环境 搭建网站 搭建应用 部署自建项目 块存储最佳实践 网络最佳实践 安全最佳实践 数据恢复与容灾最佳实践 运维与监控最佳实践 成本优化最佳实践 稳定性最佳实践 部署高可用架构 GPU 服务器最佳实践 视频专区 如何配置 Linux 实例的 swap 分区?更新时间:2025-12-26 15:07:23 复制为 MD 格式 产品详情 当云服务器 ECS 实例物理内存不足时,配置 Swap(交换空间) 是一种经济高效的应急方案。它利用磁盘空间作为虚拟内存,可以防止系统因偶发的内存峰值导致内存溢出 (OOM) 而崩溃,允许系统在物理内存耗尽时继续平稳运行。重要 开启 swap 分区可能会导致内存 I/O 性能下降。当 ECS 实例内存不足时,建议优先通过修改实例规格增加实例的物理内存。对于普通云盘,不建议使用 swap 分区,因为其 I/O 性能较低,会导致性能下降和 I/O 瓶颈。其他类型云盘可根据实际情况使用 swap 分区,但应合理配置以避免频繁的 swap 分区操作,确保系统性能和稳定性。操作步骤 在开始配置前,确认系统当前没有已存在的 Swap 配置,避免冲突。ECS 实例。访问 ECS 控制台 - 实例。在页面左侧顶部,选择目标资源所在的资源组和地域。进入目标实例详情页,单击远程连接,选择通过 Workbench 远程连接。根据页面提示登录,进入终端页面。

如何开启 DigitalOcean Droplet 的 Swap 分区防止内存溢出?

逻辑卷实战案例-swap 分区

swap 分区在系统的运行内存不够用的时候,把运行内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到 swap 分区中,等到那些程序要运行时,再从 Swap 分区中恢复保存的数据到内存中。可以缓解物理内存不足的压力,如果物理内存不足,还没有 swap 空间,会宕机 扩容 swap 空间 方法 1: 增加一个设备 (硬盘,分区,逻辑卷) 来扩容 swap 空间 代码语言:javascript 查看 swap 空间大小:[root@zutuanxue~]# free-m total used free shared buff/cache availableMem:391813092002156062358Swap:204702047[root@zutuanxue~]# swapon-s 文件名 类型 大小 已用 权限/dev/dm-1partition20971480-2[root@zutuanxue~]# mkswap/dev/sdb4 姹 1,大小=2GiB(2147479552 个字节) 无标签,UUID=8235e59a-1043-4251-8694-ba619cb36f1c[root@zutuanxue~]# blkid/dev/sdb4/dev/sdb4:UUID="8c"TYPE="swap"PARTUUID="be"//激活 swap 分区。swap 空间不能手动挂载 [root@zutuanxue~]# swapon/dev/sdb4[root@zutuanxue~]# swapon-s 文件名 类型 大小 已用 权限/dev/dm-1partition20971480-2/dev/sdb4 partition20971480-3[root@zutuanxue~]# free-m total used free shared buff/cache availableSwap:409504095LVM 形式 [root@zutuanxue~]# mkswap/dev/vg1/swap #创建 swap[root@zutuanxue~]# swapon/dev/vg1/swap #开启 swap[root@zutuanxue~]# lvextend-L4G/dev/vg1/swap #放大 LVM 形式的 swap[root@zutuanxue~]# swapoff/dev/vg1/swap #关闭 lvm 形式的 swap[root@zutuanxue/]# mkswap/dev/vg1/lv-swap #重新制作 swap[root@zutuanxue~]# swapon/dev/vg1/swap #开启 lvm 形式的 swap[root@zutuanxue~]# free-m #确认 swap 分区是否放大 AI 代码解释 [root@zutuanxue~]# ddif=/dev/zeroof=/tmp/swapfile bs=1M count=2048if=源文件,infile 指定从哪里读入数据 of=目标文件,out file 指定将数据写入什么位置 bs=复制数据的大小,block size count=复制的个数 注意:1.一般可以使用 dd 命令做块设备文件的备份 2./dev/zero 特殊设备,一般用来模拟一个大文件,源源不断的二进制的数据流;/dev/null 空设备,类似黑洞 步骤:1.使用 dd 命令模拟大文件 # ddif=/dev/zeroof=/tmp/swapfile bs=1M count=20482.格式化大文件 [root@zutuanxue~]# mkswap/tmp/swapfilemkswap:/tmp/swapfile:不安全的权限 0644,建议使用 0600。正在设置交换空间 查看 swap 空间

FAQ

DigitalOcean 官方是否建议开启 Swap?

官方通常不建议在 SSD 存储的 Droplet 上开启 Swap,因为可能导致硬件磨损,建议升级内存。

如何开启 DigitalOcean Droplet 的 Swap 分区防止内存溢出?

Swap 文件创建后如何确保重启生效?

需要将 Swap 条目添加到/etc/fstab 文件中以实现开机自动挂载。

如何开启 DigitalOcean Droplet 的 Swap 分区防止内存溢出?

Swap 分区大小应该如何设置?

通常建议 Swap 大小与物理内存相当,对于 2-8GB 内存可设置 1 倍,8-64GB 内存至少 4GB。