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带来的性能损耗。