插件窝 干货文章 Linux云服务器如何设置swap虚拟内存

Linux云服务器如何设置swap虚拟内存

Swap 内存 使用 sudo 894    来源:    2025-04-24

Linux云服务器设置Swap虚拟内存指南

Swap(交换空间)是Linux系统中的虚拟内存,当物理内存(RAM)不足时,系统会将部分内存数据交换到硬盘上的Swap空间中。以下是设置Swap的详细步骤:

1. 检查当前Swap状态

free -h
# 或
swapon --show

2. 创建Swap文件

方法一:使用dd命令创建Swap文件

# 创建4GB的Swap文件(根据需求调整大小)
sudo fallocate -l 4G /swapfile
# 或者使用dd命令(较慢但更可靠)
# sudo dd if=/dev/zero of=/swapfile bs=1M count=4096

# 设置正确的权限
sudo chmod 600 /swapfile

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

# 启用Swap文件
sudo swapon /swapfile

方法二:使用LVM创建Swap分区(适用于有LVM的系统)

# 创建逻辑卷(例如创建4G的Swap)
sudo lvcreate -L 4G -n swap vg0

# 格式化
sudo mkswap /dev/vg0/swap

# 启用
sudo swapon /dev/vg0/swap

3. 永久生效设置

编辑/etc/fstab文件,添加以下行:

/swapfile none swap sw 0 0
# 或对于LVM
# /dev/vg0/swap none swap sw 0 0

4. 调整Swap使用策略

编辑/etc/sysctl.conf文件,添加或修改以下参数:

# 控制内核使用Swap的倾向(0-100,值越小越倾向使用物理内存)
vm.swappiness=10

# 控制内核回收内存的倾向
vm.vfs_cache_pressure=50

应用设置:

sudo sysctl -p

5. 优化Swap性能(可选)

# 提高Swap优先级(如果有多个Swap设备)
sudo swapon -p 100 /swapfile

# 使用zram(压缩内存作为Swap,适用于内存较小的系统)
sudo apt install zram-config  # Ubuntu/Debian
sudo dnf install zram-generator  # Fedora/CentOS

6. 移除Swap(如果需要)

# 禁用Swap
sudo swapoff /swapfile

# 删除Swap文件
sudo rm /swapfile

# 从/etc/fstab中移除对应行

注意事项

  1. Swap大小建议

    • 内存 < 2GB:Swap = 2倍内存
    • 内存 2-8GB:Swap = 相等内存
    • 内存 > 8GB:Swap = 0.5倍内存或更少
  2. 云服务器通常使用SSD,Swap性能比传统硬盘更好

  3. 频繁使用Swap会降低系统性能,应考虑增加实际内存

  4. 对于内存较大的系统,可以适当降低swappiness值(如10)以减少Swap使用

  5. 某些云服务商可能对Swap使用有限制,请查阅相关文档