使用free -h命令可快速查看内存与Swap的总使用量、剩余量及使用率;swapon --show或cat /proc/swaps能显示当前启用的Swap分区/文件的详细信息(如设备名、大小、已用空间)。这些命令是诊断Swap状态的常用工具。
for i in $(cd /proc; ls grep "[0-9]" | awk '{print $0}'); do awk '/Swap:/ {print $2}' /proc/$i/smaps 2>/dev/null; done | sort -k1,1nr | head命令,找出占用Swap最多的进程,必要时终止异常进程(如kill -9 PID)。sudo sysctl vm.swappiness=10(数值越低,越少使用Swap);永久生效则编辑/etc/sysctl.conf,添加vm.swappiness=10,再运行sudo sysctl -p使配置生效。/etc/fstab中存在正确的Swap配置(如/dev/sdX1 none swap sw 0 0或/swapfile none swap sw 0 0),无错误或缺失。sudo swapon -a命令启用所有配置的Swap分区;若未配置/etc/fstab,需添加对应行,确保重启后自动启用。sudo fallocate -l 2G /swapfile(或sudo dd if=/dev/zero of=/swapfile bs=1M count=2048);sudo chmod 600 /swapfile;sudo mkswap /swapfile;sudo swapon /swapfile;/etc/fstab添加/swapfile none swap sw 0 0。fdisk/parted创建新分区(如/dev/sdb1),类型设为“Linux swap”;sudo mkswap /dev/sdb1;sudo swapon /dev/sdb1;/etc/fstab添加/dev/sdb1 none swap sw 0 0。sudo swapoff /swapfile;sudo fallocate -l 4G /swapfile(或dd命令);sudo mkswap /swapfile;sudo swapon /swapfile;/etc/fstab中的文件大小(可选)。sudo swapoff /dev/sdX1;fdisk删除原分区,创建更大新分区;sudo mkswap /dev/sdX1;sudo swapon /dev/sdX1;/etc/fstab中的分区信息。SSD的读写寿命有限,频繁的Swap操作会加速其老化,尤其在SSD老化后可能导致性能下降。建议:
smartctl工具)。Swappiness控制系统使用Swap的倾向,取值0-100(默认60)。数值越高,系统越倾向于将内存页交换到Swap中。
sudo sysctl vm.swappiness=10(立即生效,重启失效);/etc/sysctl.conf,添加vm.swappiness=10,然后运行sudo sysctl -p使配置生效。若系统因Swap问题无法正常启动,可通过单用户模式修复:
e编辑,在内核行末尾添加single,按Ctrl+X启动进入单用户模式。e编辑,找到linux16/linuxefi开头的行,将ro改为rw,在行末尾添加init=/bin/bash,删除rhgb和quiet,按Ctrl+X启动进入单用户模式。journalctl -b -1)或修复文件系统(fsck)。OPENVZ架构的VPS没有独立的Swap分区,其Swap空间由宿主机统一管理,用户无法手动添加或修改Swap配置。若需扩展内存,建议升级VPS套餐或优化应用内存使用。
Swap是物理内存的补充,不能完全替代物理内存。频繁使用Swap会导致系统性能下降(如进程响应变慢、磁盘I/O升高)。建议: