Ubuntu22云服务器添加2G Swap分区

Ubuntu22云服务器添加2G Swap分区

  • [步骤 1:检查当前 Swap 和内存](#步骤 1:检查当前 Swap 和内存)
  • [步骤 2:创建 2GB 的 Swap 文件](#步骤 2:创建 2GB 的 Swap 文件)
  • [步骤 3:设置权限并格式化](#步骤 3:设置权限并格式化)
  • [步骤 4:启用 Swap 文件](#步骤 4:启用 Swap 文件)
  • [步骤 5:永久保留 Swap 配置](#步骤 5:永久保留 Swap 配置)
  • [可选优化:调整 Swappiness](#可选优化:调整 Swappiness)
  • 验证结果
  • 注意事项

在 Ubuntu 22 云服务器上添加 2GB 的 Swap 空间(交换分区),

推荐使用 Swap 文件而非物理分区,因为操作更简单且无需调整磁盘布局。

以下是详细步骤:


步骤 1:检查当前 Swap 和内存

bash 复制代码
# 查看内存和 Swap 使用情况
free -h

# 检查已启用的 Swap 设备
swapon --show
  • 确认当前内存大小(例如 32GB)及是否已有 Swap。

步骤 2:创建 2GB 的 Swap 文件

bash 复制代码
# 使用 fallocate 快速创建 2GB 文件(推荐)
sudo fallocate -l 2G /swapfile

# 如果 fallocate 不可用,使用 dd(较慢)
# sudo dd if=/dev/zero of=/swapfile bs=1M count=2048

步骤 3:设置权限并格式化

bash 复制代码
# 确保文件仅 root 可读写
sudo chmod 600 /swapfile

# 将文件格式化为 Swap 格式
sudo mkswap /swapfile

步骤 4:启用 Swap 文件

bash 复制代码
# 临时启用 Swap
sudo swapon /swapfile

# 验证 Swap 是否生效
swapon --show
free -h

步骤 5:永久保留 Swap 配置

bash 复制代码
# 将 Swap 文件写入 /etc/fstab
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

可选优化:调整 Swappiness

默认情况下,系统倾向于使用 Swap 的频率由 swappiness 值控制(范围 0-100)。

  • 推荐值
    • 服务器建议设置为较低值(如 10),减少过早使用 Swap。
    • 桌面环境可适当提高(如 60)。
bash 复制代码
# 临时调整
sudo sysctl vm.swappiness=10

# 永久生效
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf

# 验证
cat /proc/sys/vm/swappiness

验证结果

bash 复制代码
free -h

输出示例:

复制代码
               total        used        free      shared  buff/cache   available
Mem:           32.0Gi       31.1Gi       200Mi        10Mi       700Mi       800Mi
Swap:          2.0Gi       0B          2.0Gi

注意事项

  1. 云服务器限制:某些云服务商可能默认禁用 Swap,需检查服务商文档。
  2. 磁盘空间 :确保根目录有足够空间存放 /swapfile
  3. 性能影响:Swap 基于磁盘,频繁使用可能降低性能,建议根据应用需求调整大小。
相关推荐
运维小欣8 小时前
可观测平台选型指南:如何在复杂数字环境中构建业务保障的制胜之道
运维
weixin_489690028 小时前
MicroSIP自定义web拨打协议
服务器·前端·windows
yuanmenghao8 小时前
Linux 配置Samba,Windows登录,开机自动映射登录
linux·运维·windows·操作系统·samba
秋天枫叶358 小时前
【k8s集群Docker + cri-dockerd】服务器重启或关机后 apiserver/controller/scheduler 无法自动恢复
linux·运维·服务器·容器·kubernetes·bug
赋创小助手8 小时前
超微2U高密度服务器AS-2126HS-TN评测(双AMD EPYC 9005 Turin)
运维·服务器·人工智能·深度学习·神经网络·自然语言处理·架构
松涛和鸣8 小时前
59、 IMX6ULL按键驱动开发:轮询到中断的实现
linux·服务器·c语言·arm开发·数据库·驱动开发
LcVong8 小时前
C# 基于MemoryMappedFile实现进程间通信(服务端+客户端完整范例)
linux·服务器·c#
狂放不羁霸9 小时前
Tailscale | 校园网外笔记本借助校园网内主机连接实验室服务器
运维·服务器·vscode
cg50179 小时前
Continue插件实现本地部署一个“cursor”或“github copilot”
github·copilot·curcor
海域云-罗鹏9 小时前
马来西亚工厂与内地数据中心SD-WAN组网全指南
服务器·网络