随着树莓派4的发布,硬件内存从1G到4G可选,在之前的产品中,内存是个固定值。虽然大部分时候我们不会用到这么大,但是在运行机器学习算法,或者进行源码编译的时候,如果没有足够的内存,系统就会报错。

这种情况下,虚拟内存就可以起到很大作用了。

输入free命令查看内存情况(以下操作在树莓派3B上完成)

pi@raspberrypi:~ $ free
              total        used        free      shared  buff/cache   available
Mem:         948304      560544      282136        2288      105624      329076
Swap:        102396       43008       59388

能够看到,物理内存948M,接近1G,虚拟内存102M

接下来编辑/etc/dphys-swapfile

sudo nano /etc/dphys-swapfile

找到CONF_SWAPSIZE=100,这就是我们要调整的地方了。

将100更改为自己希望的虚拟内存,按照Mbytes计数,比如2G对应的是2048

保存文件后,重启服务

sudo /etc/init.d/dphys-swapfile restart

再用free查看内存情况,就可以看到虚拟内存增加到了我们想要的值了

pi@raspberrypi:~ $ free
              total        used        free      shared  buff/cache   available
Mem:         948304      628268      195500       12920      124536      250352
Swap:       2097148           0     2097148

就算是重新启动,虚拟内存的设置也是不会丢失的


提醒一下,虚拟内存并非百无一害,因为TF卡的读写是有寿命的,虚拟内存会频繁的读写同一个部分的数据,有导致损坏的可能。

所以在使用完毕以后最好是再次更改文件,最好更改到0,禁止虚拟内存