一、SWAP 虚拟内存是什么?

定义
SWAP(交换分区)是磁盘上的一块空间,用于在物理内存(RAM)不足时,将部分不活跃的内存数据临时存储到磁盘中,避免系统因内存耗尽而崩溃。

核心作用

  1. 扩展可用内存:防止应用程序因内存不足(OOM)被强制终止12
  2. 提升系统稳定性:缓解突发高负载下的内存压力,降低宕机风险34
  3. 优化资源利用:允许系统将长期未使用的内存页移至 SWAP,释放物理内存供急需进程使用56

适用场景

  • 物理内存较小(如 1-2GB 的轻量级服务器)。
  • 运行内存密集型应用(如数据库、Java 服务)。

**二、莱卡云服务器开启 SWAP 的步骤

1. 创建 SWAP 文件

bashCopy Code

# 分配 1GB 的 SWAP 文件(根据需求调整大小) 

sudo fallocate -l 1G /swapfile 

# 若 fallocate 不可用,改用 dd 命令 

sudo dd if=/dev/zero of=/swapfile bs=1M count=1024 

# 设置权限 

sudo chmod 600 /swapfile 

2. 格式化为 SWAP 分区

bashCopy Code

sudo mkswap /swapfile 

3. 激活 SWAP

bashCopy Code

sudo swapon /swapfile 

4. 永久生效配置

bashCopy Code

# 编辑 /etc/fstab 

sudo nano /etc/fstab 

# 添加以下行 

/swapfile none swap sw 0 0 

5. 验证 SWAP 状态

bashCopy Code

free -h 

# 输出示例: 

#               total   used    free 

# Swap:         1.0G    0B      1.0G 


三、SWAP 配置优化建议

参数

推荐值

说明

SWAP 大小

1-2 倍物理内存(≤8GB)

内存≤4GB 时建议 2 倍;内存≥8GB 时 1 倍35

swappiness

10-30(默认 60)

控制内存换出频率,值越低越少使用 SWAP46

调整 swappiness

bashCopy Code

# 临时生效 

sudo sysctl vm.swappiness=10 

# 永久生效 

sudo nano /etc/sysctl.conf 

# 添加或修改: 

vm.swappiness=10 


四、注意事项

  1. 性能影响
    • SWAP 依赖磁盘 I/O,频繁读写可能降低性能(尤其是 HDD 磁盘)56
    • 莱卡云服务器建议搭配 SSD 云盘使用,减少延迟6
  2. 监控与维护
    • 使用 htop 或 vmstat 1 监控 SWAP 使用率。
    • 内存长期不足时,优先考虑升级莱卡云实例内存配置。
  3. 禁用 SWAP

bashCopy Code

sudo swapoff /swapfile 

sudo rm -f /swapfile 

# 删除 /etc/fstab 中相关行 


通过上述操作,您可以在莱卡云服务器上快速启用 SWAP 虚拟内存,平衡内存资源与成本,确保服务稳定运行。建议根据实际负载动态调整 SWAP 大小及 swappiness 参数
 

Logo

一起探索未来云端世界的核心,云原生技术专区带您领略创新、高效和可扩展的云计算解决方案,引领您在数字化时代的成功之路。

更多推荐