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 的脚本(直接复制运行即可)?