CentOS Swap升级方法详解
Swap(交换空间)是CentOS系统扩展虚拟内存的关键机制,用于缓解物理内存不足的问题。升级Swap空间主要分为增加新Swap空间(文件/分区/逻辑卷)、调整现有Swap大小及优化Swap使用效率三类场景,以下是具体操作步骤及注意事项。
fallocate命令快速分配指定大小的文件(如4GB),或用dd命令(更底层,适用于所有场景)。sudo fallocate -l 4G /swapfile # 推荐:快速创建
# 或
sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 # dd方式:逐块写入
sudo chmod 600 /swapfile
mkswap命令将文件标记为交换空间。sudo mkswap /swapfile
sudo swapon /swapfile
/etc/fstab文件,添加以下行,确保系统重启后自动挂载。echo "/swapfile swap swap defaults 0 0" | sudo tee -a /etc/fstab
free -h或swapon --show命令确认Swap空间已增加。fdisk或parted工具在未分配的磁盘空间上创建新分区(如/dev/sdb1),并将分区类型设置为Linux swap(类型代码为82)。sudo fdisk /dev/sdb # 进入fdisk交互界面
# 按提示创建分区(n→p→设置大小→t→82→w保存退出)
sudo mkswap /dev/sdb1
sudo swapon /dev/sdb1
/etc/fstab文件,添加以下行。echo "/dev/sdb1 swap swap defaults 0 0" | sudo tee -a /etc/fstab
若系统使用LVM管理磁盘,可通过扩展逻辑卷(LV)快速调整Swap大小:
/dev/vg_name/swap_lv)添加1GB空间。sudo lvextend -L +1G /dev/vg_name/swap_lv
sudo mkswap /dev/vg_name/swap_lv
sudo swapon -a # 自动启用/etc/fstab中的所有Swap
sudo swapoff /swapfile # 若为文件
# 或
sudo swapoff /dev/sdb1 # 若为分区
fallocate重新分配更大空间(如从4GB扩至8GB)。sudo fallocate -l 8G /swapfile
fdisk/parted删除原分区并创建更大分区(注意:需重新设置分区类型为swap)。sudo mkswap /swapfile
sudo swapon /swapfile
/etc/fstab:修改对应行(如将/swapfile的大小注释移除或更新)。sudo swapoff /swapfile
truncate或dd截断文件(如从8GB缩至4GB)。sudo truncate -s 4G /swapfile
fdisk/parted删除原分区并创建更小分区(需重新格式化)。Swappiness控制内核使用Swap的倾向(默认值30,范围0-100)。值越低,系统越倾向于保留数据在物理内存中,减少Swap使用。
cat /proc/sys/vm/swappiness
sudo sysctl vm.swappiness=10 # 推荐:10-20(平衡性能与内存利用率)
/etc/sysctl.conf文件,添加以下行。vm.swappiness=10
sudo sysctl -p # 使配置生效
定期使用以下命令监控Swap状态,及时发现内存瓶颈:
free -h # 查看内存与Swap总量及使用率
swapon --show # 查看当前启用的Swap设备及大小
top/htop # 实时查看进程内存占用(按M排序)
vmstat 1 # 查看虚拟内存统计信息(每秒刷新)
dnf替代yum,但Swap操作命令基本一致。通过以上方法,可有效升级CentOS系统的Swap空间,提升多任务处理能力及系统稳定性。