台州市文章资讯

linux怎么调整swap大小? linux扩容swap分区的技巧

2026-04-07 11:44:02 浏览次数:0
详细信息

1. 使用Swap文件(推荐)

这是最灵活且无需重新分区的方法:

# 1. 创建新的swap文件(比如4GB)
sudo fallocate -l 4G /swapfile

# 或者使用dd(如果fallocate不可用)
# sudo dd if=/dev/zero of=/swapfile bs=1M count=4096

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

# 3. 格式化为swap
sudo mkswap /swapfile

# 4. 启用swap文件
sudo swapon /swapfile

# 5. 永久生效(添加到/etc/fstab)
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

# 6. 验证
sudo swapon --show
free -h

2. 使用LVM调整Swap大小

如果swap在LVM卷上:

# 1. 关闭swap
sudo swapoff -a

# 2. 扩展逻辑卷(假设swap在lv_swap上)
sudo lvextend -L +2G /dev/vgname/lv_swap

# 3. 重新创建swap
sudo mkswap /dev/vgname/lv_swap

# 4. 重新启用
sudo swapon -a

# 5. 验证
free -h

3. 调整现有Swap分区大小

需要重新分区的情况:

# 1. 禁用swap
sudo swapoff /dev/sdXN  # 替换为你的swap分区

# 2. 删除并重新创建分区(使用fdisk/gdisk)
sudo fdisk /dev/sdX
# 删除原swap分区,创建新的大小的分区,类型设为Linux swap

# 3. 通知内核分区表变更
sudo partprobe

# 4. 格式化新分区
sudo mkswap /dev/sdXN

# 5. 启用
sudo swapon /dev/sdXN

# 6. 更新/etc/fstab
sudo vim /etc/fstab  # 更新UUID或设备路径

4. 调整Swappiness参数

调整系统使用swap的倾向:

# 查看当前值(0-100,越高越倾向使用swap)
cat /proc/sys/vm/swappiness

# 临时调整
sudo sysctl vm.swappiness=10

# 永久调整
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

5. 优化Swap性能技巧

# 1. 设置swap优先级(数值越高优先级越高)
# 如果有多个swap设备,系统会优先使用优先级高的
sudo swapon -p 100 /swapfile

# 2. 使用zram(内存压缩swap,适合内存较小系统)
sudo apt install zram-config  # Ubuntu/Debian

# 3. 使用Btrfs swap文件(需要内核5.0+)
sudo chattr +C /swapfile

注意事项

数据备份:操作前备份重要数据 内存充足时:物理内存足够大可以减少swap使用 SSD注意:频繁swap会缩短SSD寿命 休眠功能:如果需要休眠,swap大小应≥物理内存 验证UUID:修改分区后记得更新/etc/fstab中的UUID

最简单的方法是使用swap文件,无需分区操作,且可以动态调整。

相关推荐