ubuntu设置swap交换缓存 你这台 Ubuntu 14.04 系统目前是 没有启用交换分区/交换文件 的,所以 free -mh 里显示 交换:0B , sar -S 也全是 0。要启用 swap(交换缓存),需要手动添加。 一、创建交换文件(推荐方法) 创建一个 2G 的交换文件 (可以根据内存大小决定,通常设为内存的 1~2 倍,但不要超过硬盘实际空间): sudo fallocate -l 2G /swapfile 如果 fallocate 不支持,可以用 dd : sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 设置权限 sudo chmod 600 /swapfile 格式化为交换分区 sudo mkswap /swapfile 启用 swap sudo swapon /swapfile 检查是否生效 free -mh 会显示有了 2G 的 Swap。 你再执行: sar -S 1 5 就会有 kbswpfree 数值了。 永久生效 编辑 /etc/fstab ,在文件最后添加一行: /swapfile none swap sw 0 0 二、如果你有空闲磁盘分区 也可以用 mkswap 格式化一个分区(比如 /dev/sdb2 ),然后 swapon /dev/sdb2 ,并写入 /etc/fstab 。 三、调整内核交换策略(可选) Linux 默认 尽量不用 swap ,你可以通过 swappiness 调整: cat /proc/sys/vm/swappiness 默认是 60 (数值越高越倾向使用 swap)。 临时修改: sudo sysctl vm.swappiness=10 永久修改: 编辑 /etc/sysctl.conf ,添加: vm.swappiness=10 保存后执行: sudo sysctl -p 🔧 建议: 你的内存才 1.8G, 一定要开 swap ,否则遇到大进程容易 OOM。 推荐 swapfile 2G 左右,再配合 vm.swappiness=10 ,避免过度使用交换区导致系统卡顿。 要不要我帮你写一份 Ubuntu 14.04 一键创建 + 启用 2G swap 的脚本 (直接复制运行即可)? 👌 现在效果很清楚了: 你已经启用了 2 GiB swap ( free -mh 里显示出来了)。 sar -S 也显示 swap 空间总量: kbswpfree 2096880 (大约 2GB 可用) kbswpused 268 (大约 268KB 被用) %swpused 0.01% → 说明 swap 已经生效,并且被轻微使用。 你目前的状态 内存总计: 1.8 GiB ,已用 ~727 MiB,可用 ~898 MiB。 缓冲/缓存 ~1 GiB,说明系统在尽可能利用内存做缓存。 Swap 已经挂上,使用量几乎为 0,只在少数情况下被触发。 kbswpcad (swap cache)显示有 13% 命中率 ,说明有部分页被交换出去后又被引用,但整体使用很轻微。 优化建议 调整 swappiness(控制 swap 使用倾向) 目前系统的默认值应该是 60 。 你内存比较小(1.8 G),建议设低一些,避免过早 swap: echo 10 | sudo tee /proc/sys/vm/swappiness 永久生效:在 /etc/sysctl.conf 里加: vm.swappiness=10 然后: sudo sysctl -p 设置 cache 压缩(可选) 如果升级到较新内核,可以考虑用 zram 压缩 swap,性能更好。不过你现在是 5.4 内核,已经支持 zram,可以配置 /dev/zram 来当 swap。 监控 swap 使用情况 查看 swap 使用情况: swapon -s 结合内存监控: vmstat 1 如果 si/so (swap in/out)经常不为 0,就说明 swap 压力大了。 ⚡ 总结: 你已经 成功启用了 2 G swap 。 swap 正常工作,但几乎没用到,不会拖慢性能。 建议把 vm.swappiness 调到 10 左右,主要靠内存跑,只有在内存紧张时才用 swap。 要不要我给你写一个 一键设置 swappiness + 开机启用 swap 检查的脚本 ,方便你服务器自动化维护?