类别:Ubantu / 日期:2025-06-29 / 浏览:357 / 评论:0
甲骨文的服务器,内存只有1G,在部署ubuntu 22.04镜像后,默认没有swap。以下将在硬盘划2G作为虚拟内存。
在 Oracle Cloud (甲骨文云) 的免费主机(Always Free Tier)上,如果需要将部分磁盘空间划分为 Swap(交换分区),可以按照以下步骤操作:
1. 检查当前磁盘和内存情况
查看磁盘空间
df -h
查看内存和 Swap
free -h
如果 Swap
显示为 0
,说明当前没有启用 Swap。
2. 创建 Swap 文件(推荐方式)
Oracle Cloud 的免费实例默认使用 虚拟化磁盘,直接创建 Swap 文件比调整分区更安全。
(1)创建 Swap 文件(例如 2GB)
sudo fallocate -l 2G /swapfile
如果 fallocate
不可用,可以用 dd
:
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
(2)设置权限
sudo chmod 600 /swapfile
(3)格式化为 Swap
sudo mkswap /swapfile
(4)启用 Swap
sudo swapon /swapfile
验证是否生效:
free -h
应该能看到 Swap
行显示新增的交换空间。
(5)设置开机自动挂载
编辑 /etc/fstab
:
sudo nano /etc/fstab
在文件末尾添加:
/swapfile none swap sw 0 0
保存并退出(Ctrl+X
→ Y
→ Enter
)。
3. 调整 Swap 使用策略(可选)
默认情况下,Linux 会在内存快满时才使用 Swap。可以调整 swappiness
让系统更早使用 Swap:
# 查看当前值(默认60)cat /proc/sys/vm/swappiness# 临时调整(推荐值10~30)sudo sysctl vm.swappiness=30# 永久生效echo "vm.swappiness=30" | sudo tee -a /etc/sysctl.conf
4. 删除 Swap(如果需要)
# 关闭 Swapsudo swapoff /swapfile# 删除 Swap 文件sudo rm /swapfile# 从 /etc/fstab 中删除对应行sudo nano /etc/fstab
注意事项
Oracle Cloud 免费实例限制:
ARM 实例(如 Ampere A1)免费提供 4 核 + 24GB 内存,通常不需要 Swap。
AMD 实例(如 VM.Standard.E2.1.Micro)仅 1 核 + 1GB 内存,建议增加 1~2GB Swap。
SSD 性能影响:
Swap 使用磁盘 I/O,频繁读写可能影响性能,建议仅在内存不足时使用。
Swap 大小建议:
内存 ≤ 2GB → Swap = 2×内存
内存 > 2GB → Swap = 1~2GB
总结
# 1. 创建 2GB Swap 文件sudo fallocate -l 2G /swapfilesudo chmod 600 /swapfilesudo mkswap /swapfilesudo swapon /swapfile# 2. 开机自动挂载echo "/swapfile none swap sw 0 0" | sudo tee -a /etc/fstab# 3. 调整 swappinessecho "vm.swappiness=30" | sudo tee -a /etc/sysctl.conf
完成后,你的 Oracle Cloud 免费主机将拥有额外的 Swap 空间,避免内存不足导致进程被终止。