分区扩容和文件扩容:
# 查看当前 Swap 信息
free -h
swapon --show
cat /proc/swaps
这是最简单灵活的方法,适用于大部分场景:
# 创建 4GB 的 Swap 文件
sudo fallocate -l 4G /swapfile
# 或者使用 dd(如果 fallocate 不可用)
sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
# 设置权限
sudo chmod 600 /swapfile
# 格式化为 Swap
sudo mkswap /swapfile
# 启用新的 Swap 文件
sudo swapon /swapfile
# 编辑 /etc/fstab
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
# 查看当前值
cat /proc/sys/vm/swappiness
# 临时调整(推荐值:10-60)
sudo sysctl vm.swappiness=30
# 永久生效
echo 'vm.swappiness=30' | sudo tee -a /etc/sysctl.conf
如果 Swap 在 LVM 逻辑卷上:
sudo lvs
sudo vgs
sudo pvs
# 关闭 Swap
sudo swapoff -v /dev/vgname/swap_lv
# 扩展逻辑卷(增加 4G)
sudo lvextend -L +4G /dev/vgname/swap_lv
# 重新格式化
sudo mkswap /dev/vgname/swap_lv
# 重新启用
sudo swapon /dev/vgname/swap_lv
# 1. 关闭 Swap
sudo swapoff /dev/sdXN
# 2. 删除原分区并重新创建(使用相同起始扇区)
sudo fdisk /dev/sdX
# 在 fdisk 中:d -> n -> p -> 输入起始扇区 -> 输入新大小
# 3. 重新格式化
sudo mkswap /dev/sdXN
# 4. 启用 Swap
sudo swapon /dev/sdXN
# 5. 更新 /etc/fstab
可以同时使用多个 Swap 文件或分区:
# 创建第二个 Swap 文件
sudo fallocate -l 2G /swapfile2
sudo chmod 600 /swapfile2
sudo mkswap /swapfile2
sudo swapon /swapfile2
# 查看所有激活的 Swap
swapon --show
# 调整缓存压力
sudo sysctl vm.vfs_cache_pressure=50
# 验证设置
sudo sysctl -p
# 1. 禁用旧 Swap
sudo swapoff -v /swapfile
# 2. 删除旧文件
sudo rm /swapfile
# 3. 创建 8G 新文件
sudo fallocate -l 8G /swapfile
# 4. 设置权限
sudo chmod 600 /swapfile
# 5. 格式化
sudo mkswap /swapfile
# 6. 启用
sudo swapon /swapfile
# 7. 验证
free -h
swapon --show
# 检查 Swap 错误
sudo dmesg | grep -i swap
# 查看内存使用详情
cat /proc/meminfo
# 测试 Swap 性能
sudo dd if=/dev/zero of=/swapfile bs=1024 count=1000000
根据你的具体环境和需求选择合适的方法,操作前确保已备份重要数据。