正常ubuntu在新安装系统时,会提示设置swap分区,但是这种方式并不灵活,
如果硬盘使用空间较小的ssd,
将本来就不大的空间划分出来一大块,有时候磁盘空间不够用,删除分区很麻烦。
我们可以采用swap文件的方式,在硬盘上创建一个swap文件,在不需要时删除文件即可。
交换分区顾名思义就是在内存不足时与物理内存的数据做交换的,
所以最大就设置为物理内存的大小即可,设置太大用不到。
我使用的是ubuntu 18.04,
最近用vmware虚拟机装了一个win10,8g内存,2g交换分区,在虚拟机开关机时经常
出现因为内存不够用卡死。
ubuntu18.04默认的swap文件在根目录/下,名字是swapfile
先关闭和删除原来的swapfile可以不用设置最后一步
查看交换分区大小
free -m
在创建完毕后也可以用这个命令查看内存情况
关闭和删除原来的swapfile
cd /
sudo swapoff swapfile
sudo rm /swapfile
创建一个swap文件
sudo dd if=/dev/zero of=swapfile bs=1024 count=8000000
创建的交换文件名是swap,后面的80000000是8g的意思,可以按照自己的需要更改
创建swap文件系统
sudo mkswap -f swapfile
开启swap
sudo swapon swapfile
6.设置开机启动
sudo vim /etc/fstab
ubuntu下既可以使用物理内存,还可以使用swap分区作为虚拟内存,swap分区是在安装系统时进行设置的,其速度比物理内存慢得多,当物理内存不够用时,就会使用swap分区来作为虚拟内存。在ubuntu里面往往不是物理内存全部耗尽之后才采取使用swap分区的,而是通过swappiness值的大小来判断如何使用swap分区的,swappiness=0的时候表示最大限度使用物理内存,然后才是swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时地搬运到swap空间里面,ubuntu这个值默认设置为60.
查看系统里面的swappiness值
cat /proc/sys/vm/swappiness
修改swappiness值
在文件/etc/sysctl.conf最后添加下面这一句并重启系统,参数10为swap的利用率
vm.swappiness=10