1. 创建与配置Swap空间
Swap分为Swap文件(灵活易管理)和Swap分区(传统方式)两种类型。
dd命令创建指定大小的文件(如10GB):sudo dd if=/dev/zero of=/swapfile bs=1G count=10;设置严格权限(仅root可读写):sudo chmod 600 /swapfile;格式化为Swap空间:sudo mkswap /swapfile;启用Swap: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:/dev/sdb1 none swap sw 0 0。2. 调整Swappiness参数(关键优化项)
vm.swappiness(范围0-100)控制系统使用Swap的倾向:
sudo sysctl vm.swappiness=10;永久调整(重启后生效):编辑/etc/sysctl.conf,添加vm.swappiness=10,然后运行sudo sysctl -p使配置生效。3. 优化Swap性能
zram-config(sudo yum install zram-config);启动服务(sudo systemctl start zram-config);调整大小(编辑/etc/zram-config.conf,设置ZRAM_DEVICE_SIZE=4G)。vm.dirty_ratio(脏页占内存比例,如10%)和vm.dirty_background_ratio(后台刷新脏页的阈值,如5%),减少Swap因频繁写入磁盘导致的性能下降。编辑/etc/sysctl.conf添加:vm.dirty_ratio=10、vm.dirty_background_ratio=5,运行sudo sysctl -p生效。4. 监控Swap使用情况
定期监控Swap状态,及时发现异常(如Swap使用率持续接近100%):
free -h(直观显示内存与Swap的用量);swapon --show(列出当前启用的Swap设备及大小);cat /proc/swaps(详细显示Swap设备信息)。top(按Shift+M排序内存占用)、htop(更直观的资源监控工具)、vmstat 1(每秒刷新一次系统状态,关注si(Swap In)和so(Swap Out)列)。5. 调整Swap大小(动态适配需求)
sudo fallocate -l 2G /new_swapfile;设置权限:sudo chmod 600 /new_swapfile;格式化:sudo mkswap /new_swapfile;启用:sudo swapon /new_swapfile;添加到/etc/fstab:/new_swapfile swap swap defaults 0 0。sudo swapoff /swapfile;删除原文件:sudo rm -f /swapfile;创建新文件(如1GB):sudo fallocate -l 1G /swapfile;格式化并启用;更新/etc/fstab。6. 避免过度依赖Swap
top查看内存占用高的进程),修复代码或替换为更轻量的应用(如用nginx替代apache处理静态请求)。