在 CentOS 上扩展 Swap 分区的大小可以通过以下几种方式实现:
方法 1:增加 Swap 文件(推荐)
如果你的 Swap 是基于文件的(而不是分区),你可以增加 Swap 文件的大小,而不需要修改磁盘分区。
步骤 1:创建新的 Swap 文件
bash
sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
这里
count=4096
代表创建 4GB 大小的 Swap 文件,你可以根据需要修改大小。
步骤 2:设置 Swap 文件权限
bash
sudo chmod 600 /swapfile
步骤 3:格式化 Swap 文件
bash
sudo mkswap /swapfile
步骤 4:启用新的 Swap 文件
bash
sudo swapon /swapfile
步骤 5:确认 Swap 变更
bash
free -h
步骤 6:永久生效
编辑 /etc/fstab
文件:
bash
sudo nano /etc/fstab
添加以下内容:
/swapfile swap swap defaults 0 0
保存并退出后,使其永久生效。
方法 2:扩展 Swap 分区(仅适用于 Swap 分区)
如果你的 Swap 直接是一个分区(比如 /dev/sda2
),你可以扩展 Swap 分区的大小。
步骤 1:关闭当前 Swap
bash
sudo swapoff -a
步骤 2:调整 Swap 分区
使用 fdisk
、parted
或 lvextend
(如果使用 LVM)调整分区大小。例如:
bash
sudo lvextend -L +4G /dev/centos/swap
步骤 3:重新格式化 Swap
bash
sudo mkswap /dev/centos/swap
步骤 4:重新启用 Swap
bash
sudo swapon /dev/centos/swap
步骤 5:确认更改
bash
free -h
方法 3:调整 Swapiness(可选)
增加 Swap 大小后,你可能需要调整 swappiness
参数,使其更符合你的需求。
bash
sudo sysctl vm.swappiness=10
将 swappiness
设置为 10
(默认值通常为 60
),可以减少系统对 Swap 的依赖,提高性能。
如果希望永久生效:
bash
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
总结
方法 | 适用场景 | 难度 | 是否需要重启 |
---|---|---|---|
方法 1(增加 Swap 文件) | 适用于任何情况 | 简单 | 否 |
方法 2(扩展 Swap 分区) | 仅适用于 Swap 分区 | 中等 | 可能需要 |
方法 3(调整 swappiness) | 适用于所有情况 | 简单 | 否 |
如果你的 Swap 是文件,方法 1 是最简单和推荐的方式。如果 Swap 是分区,并且你希望扩展它,则使用 方法 2 。调整 swappiness
可以优化 Swap 相关的性能。