Ubuntu增加(swap)交换分区
内存512M。装的 vpn,lamp,在用vpn时会断线,原来是内存不足引起的。加入swap分区之后问题解决。
查看系统的swap信息
sudo swapon -s // 或 sudo free -m 、 sudo swapon --show
查看硬盘分区的可用空间
典型的做法是为swap单独创建一个分区,但是有时这是不可能完成的任务(像vps)。但是我们可以在已有的分区上创建swap文件。
查看分区信息方法命令:
df -h
我要在 /dev/vda1 分区中创建一个512M的 swap 文件做为交换分区。
创建swap文件
创建512M的 /var/swap 文件
方法一:
sudo dd if=/dev/zero of=/var/swap bs=512M count=1
方法二:
sudo fallocate -l 512M /var/swap
激活swap文件
sudo chmod 600 /var/swap sudo mkswap /var/swap // 创建 sudo swapon /var/swap // 激活
检查是否成功:
sudo swapon -s // 或 free -m
永久激活创建的swap
我们现在已经有swap了,但是当我们重启服务器后swap并不会自动激活,我们可以修改 fstab 文件实现自动激活。
sudo vi /etc/fstab
添加一行:
swap配置
swap有一些选项设置可以提要系统性能;
swappiness参数:Ram数据什么时候交换到swap,数值范围0-100(百分比)。如果数值接近于0,内核尽量不交换内存数据到swap,除非万不得已。如果数值接近100,将尽最大可能把内存数据交换到swap。
cat /proc/sys/vm/swappiness
默认值是60,对桌面系统还行,但是对vps,最好把它设置接近于0。
更改方法:
sudo sysctl vm.swappiness=10
这个设置会持续生效直到下次重启,我们可以在 /etc/sysctl.conf 文件中加入下面一行实现自动生效。
sudo vi /etc/sysctl.conf
在文件尾加入
vm.swappiness=10
另一个可以修改的选项为 vfs_cache_pressure
cat /proc/sys/vm/vfs_cache_pressure sudo sysctl vm.vfs_cache_pressure=50 // 更改为50 sudo vi /etc/sysctl.conf // 自动重启生效 vm.vfs_cache_pressure = 50