在 CentOS(以及其他 Linux 发行版)中,swap 占用高通常不是“swap 本身的问题”,而是内存压力或系统配置/行为导致的现象。下面按“常见原因 → 说明 → 排查/解决思路”为你系统梳理。
free -h
top
# 按内存排序
top -> M
CentOS 默认:
cat /proc/sys/vm/swappiness
# 常见为 30
swappiness 高 → 内核更“积极”使用 swap
# 临时
sysctl vm.swappiness=10
# 永久
echo "vm.swappiness=10" >> /etc/sysctl.conf
sysctl -p
cat /proc/meminfo
关注:
CachedDirtyMlockeddrop cacheps aux --sort=-%mem
smem -s swap
# 关闭再开启 swap(会短暂风险)
swapoff -a && swapon -a
⚠ 生产环境需评估内存是否足够
systemctl list-timers
crontab -l
free -h
swapon -s
cat /proc/sys/vm/swappiness
ps aux --sort=-%mem | head
如果你愿意,可以补充:
free -h 输出我可以直接帮你定位是哪一类原因。