找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 27802|回复: 0

云主机swap交换分区搭建与内存优化配置

[复制链接]

1

主题

0

回帖

5

积分

新手上路

积分
5
发表于 2026-8-10 16:08:33 | 显示全部楼层 |阅读模式
在云主机上配置Swap交换分区并优化内存使用,可以有效提升系统在内存不足时的稳定性,避免OOM(Out Of Memory)问题。以下是详细的配置步骤和优化建议:

一、Swap交换分区的作用

  • 功能:当物理内存(RAM)不足时,Swap分区作为虚拟内存,将部分不活跃的内存页交换到磁盘,释放物理内存供活跃进程使用。
  • 适用场景:内存较小的云主机、突发流量导致内存峰值、内存密集型应用(如数据库、Java应用)。


二、配置Swap交换分区

1. 检查现有Swap
  1. free -h  # 查看内存和Swap使用情况
  2. swapon --show  # 列出已启用的Swap分区
复制代码

2. 创建Swap文件
推荐使用文件而非分区(灵活且无需调整磁盘分区):
  1. # 创建Swap文件(例如4GB)
  2. sudo fallocate -l 4G /swapfile
  3. # 或使用dd命令(兼容性更好)
  4. sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
  5. # 设置权限(仅root可读写)
  6. sudo chmod 600 /swapfile
复制代码

3. 格式化并启用Swap
  1. sudo mkswap /swapfile  # 格式化为Swap格式
  2. sudo swapon /swapfile  # 立即启用
复制代码

4. 永久生效
编辑
  1. /etc/fstab
复制代码
,添加以下行:
  1. /swapfile none swap sw 0 0
复制代码

5. 调整Swap优先级(多Swap时)
  1. sudo swapon --priority 1 /swapfile  # 优先级越高(数值大),系统越优先使用
  2. # 或通过/etc/fstab指定:
  3. # /swapfile none swap sw,pri=1 0 0
复制代码

三、Swap性能优化

1. 调整Swappiness参数

  • 作用:控制内核使用Swap的倾向程度(0~100)。
  • 值较低(如10):优先使用物理内存,减少Swap使用(适合高性能场景)。
  • 值较高(如60):更积极地使用Swap(适合内存紧张的环境)。

  1. # 查看当前值
  2. cat /proc/sys/vm/swappiness
  3. # 临时修改(重启失效)
  4. sudo sysctl vm.swappiness=10
  5. # 永久修改
  6. echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
复制代码

2. 调整Cache压力(vfscachepressure)

  • 作用:控制内核回收缓存的倾向。降低该值可保留更多文件系统缓存,提升I/O性能。
  1. # 临时修改
  2. sudo sysctl vm.vfs_cache_pressure=50
  3. # 永久修改
  4. echo "vm.vfs_cache_pressure=50" | sudo tee -a /etc/sysctl.conf
复制代码

四、Swap大小建议

  • 内存≤2GB:Swap大小设为物理内存的2倍。
  • 内存2GB~8GB:Swap大小等于物理内存。
  • 内存≥8GB:Swap大小可设为4GB~物理内存大小(根据实际需求调整)。
  • 注意:云主机磁盘I/O性能可能影响Swap效率,避免过度依赖Swap。


五、监控与维护

  • 监控Swap使用

  1. vmstat 1 5  # 每隔1秒输出一次,共5次,关注si(swap in)、so(swap out)
复制代码

  • 释放缓存(谨慎操作)

  1. sync; echo 3 > /proc/sys/vm/drop_caches  # 清理PageCache、dentries、inodes
复制代码

六、替代方案与注意事项

  • 升级物理内存:若频繁使用Swap,优先考虑扩容RAM。
  • 优化应用内存
  • 调整JVM堆大小(
    1. -Xmx
    复制代码
    参数)。
  • 使用内存数据库(如Redis)替代磁盘存储。
  • 避免Swap风暴
  • 监控系统负载,设置内存告警。
  • 限制单个进程的内存使用(如
    1. ulimit
    复制代码
    或容器资源限制)。


七、删除Swap文件(如需)
  1. sudo swapoff /swapfile  # 停用Swap
  2. sudo rm /swapfile       # 删除文件
  3. # 并从/etc/fstab中移除对应行
复制代码

总结
合理配置Swap和优化内存参数,可以在云主机资源有限时保障系统稳定性。建议结合监控工具(如
  1. htop
复制代码
  1. nmon
复制代码
)持续观察内存和Swap使用情况,动态调整配置。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|五云论坛 ( 黔ICP备2022001370号-1|贵公网安备52032102000798号 )

GMT+8, 2026-9-12 17:28 , Processed in 0.068395 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表