CentOS中创建Swap空间主要有Swap文件和Swap分区两种方式,其中Swap文件更灵活,适用于大多数场景(尤其是云服务器或无需长期固定分区的环境)。
dd
命令创建指定大小的文件(如4GB):sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
(bs=1M
表示块大小为1MB,count=4096
表示4096块,即4GB);sudo chmod 600 /swapfile
;sudo mkswap /swapfile
;sudo swapon /swapfile
;/etc/fstab
文件,添加一行):/swapfile swap swap defaults 0 0
。fdisk
或parted
工具创建新分区(如/dev/sdb1
);sudo mkswap /dev/sdb1
;sudo swapon /dev/sdb1
;/etc/fstab
(通过blkid
获取分区UUID,添加一行):UUID=<分区UUID> swap swap defaults 0 0
。Swap大小的设置需结合物理内存大小和业务场景调整,以下是一般性建议:
swappiness
是控制内核使用Swap倾向的系统参数,取值范围为0-100(数值越高,系统越倾向于将内存数据换出到Swap)。
sudo sysctl vm.swappiness=<值>
(如sudo sysctl vm.swappiness=10
);/etc/sysctl.conf
文件,添加一行vm.swappiness=<值>
,保存后执行sudo sysctl -p
使配置生效。定期监控Swap使用情况,可及时发现内存瓶颈或Swap滥用问题:
free -h
(直观显示内存与Swap的使用状态);swapon --show
或cat /proc/swaps
(显示Swap设备名称、类型、大小、已用空间等);top
、htop
或vmstat
命令监控si
(swap in,从Swap读取数据的速率)和so
(swap out,向Swap写入数据的速率)指标,若持续较高,说明内存不足。-Xmx
参数、关闭不必要的后台进程),减少内存溢出风险。/dev/sdb
),平衡性能与寿命;若使用SSD,可适当降低swappiness
值(如设置为10以下),减少Swap写入次数。/etc/fstab
中的Swap条目,执行sudo swapoff -a
关闭当前Swap),彻底避免Swap带来的性能损耗。