Swap(交换空间)是Linux系统中的虚拟内存,当物理内存(RAM)不足时,系统会将部分内存数据交换到硬盘上的Swap空间中。以下是设置Swap的详细步骤:
free -h
# 或
swapon --show
# 创建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
# 创建逻辑卷(例如创建4G的Swap)
sudo lvcreate -L 4G -n swap vg0
# 格式化
sudo mkswap /dev/vg0/swap
# 启用
sudo swapon /dev/vg0/swap
编辑/etc/fstab
文件,添加以下行:
/swapfile none swap sw 0 0
# 或对于LVM
# /dev/vg0/swap none swap sw 0 0
编辑/etc/sysctl.conf
文件,添加或修改以下参数:
# 控制内核使用Swap的倾向(0-100,值越小越倾向使用物理内存)
vm.swappiness=10
# 控制内核回收内存的倾向
vm.vfs_cache_pressure=50
应用设置:
sudo sysctl -p
# 提高Swap优先级(如果有多个Swap设备)
sudo swapon -p 100 /swapfile
# 使用zram(压缩内存作为Swap,适用于内存较小的系统)
sudo apt install zram-config # Ubuntu/Debian
sudo dnf install zram-generator # Fedora/CentOS
# 禁用Swap
sudo swapoff /swapfile
# 删除Swap文件
sudo rm /swapfile
# 从/etc/fstab中移除对应行
Swap大小建议:
云服务器通常使用SSD,Swap性能比传统硬盘更好
频繁使用Swap会降低系统性能,应考虑增加实际内存
对于内存较大的系统,可以适当降低swappiness值(如10)以减少Swap使用
某些云服务商可能对Swap使用有限制,请查阅相关文档