类别:Ubantu / 日期:2025-06-29 / 浏览:363 / 评论:0

甲骨文的服务器,内存只有1G,在部署ubuntu 22.04镜像后,默认没有swap。以下将在硬盘划2G作为虚拟内存。

在 Oracle Cloud (甲骨文云) 的免费主机(Always Free Tier)上,如果需要将部分磁盘空间划分为 Swap(交换分区),可以按照以下步骤操作:


1. 检查当前磁盘和内存情况

查看磁盘空间

bash
复制
下载
df -h

查看内存和 Swap

bash
复制
下载
free -h

如果 Swap 显示为 0,说明当前没有启用 Swap。


2. 创建 Swap 文件(推荐方式)

Oracle Cloud 的免费实例默认使用 虚拟化磁盘,直接创建 Swap 文件比调整分区更安全。

(1)创建 Swap 文件(例如 2GB)

bash
复制
下载
sudo fallocate -l 2G /swapfile

如果 fallocate 不可用,可以用 dd

bash
复制
下载
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048

(2)设置权限

bash
复制
下载
sudo chmod 600 /swapfile

(3)格式化为 Swap

bash
复制
下载
sudo mkswap /swapfile

(4)启用 Swap

bash
复制
下载
sudo swapon /swapfile

验证是否生效:

bash
复制
下载
free -h

应该能看到 Swap 行显示新增的交换空间。

(5)设置开机自动挂载

编辑 /etc/fstab

bash
复制
下载
sudo nano /etc/fstab

在文件末尾添加:

text
复制
下载
/swapfile none swap sw 0 0

保存并退出(Ctrl+X → Y → Enter)。


3. 调整 Swap 使用策略(可选)

默认情况下,Linux 会在内存快满时才使用 Swap。可以调整 swappiness 让系统更早使用 Swap:

bash
复制
下载
# 查看当前值(默认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(如果需要)

bash
复制
下载
# 关闭 Swapsudo swapoff /swapfile# 删除 Swap 文件sudo rm /swapfile# 从 /etc/fstab 中删除对应行sudo nano /etc/fstab

注意事项

  1. Oracle Cloud 免费实例限制

    • ARM 实例(如 Ampere A1)免费提供 4 核 + 24GB 内存,通常不需要 Swap。

    • AMD 实例(如 VM.Standard.E2.1.Micro)仅 1 核 + 1GB 内存,建议增加 1~2GB Swap。

  2. SSD 性能影响

    • Swap 使用磁盘 I/O,频繁读写可能影响性能,建议仅在内存不足时使用。

  3. Swap 大小建议

    • 内存 ≤ 2GB → Swap = 2×内存

    • 内存 > 2GB → Swap = 1~2GB


总结

bash
复制
下载
# 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 空间,避免内存不足导致进程被终止。








打赏

感谢您的赞助~

打开支付宝扫一扫,即可进行扫码打赏哦~

版权声明 : 本文未使用任何知识共享协议授权,您可以任何形式自由转载或使用。

 可能感兴趣的文章