查看: 488|回复: 0

[心得] 修改树莓派交换分区 SWAP 的正确姿势

[复制链接]

主题

好友

337

积分

秀才

该用户从未签到

发表于 2017-12-23 17:14:31 |显示全部楼层
本帖最后由 lili821 于 2017-12-23 17:35 编辑

树莓派实验室按:Swap分区是磁盘上的一个特殊用途的分区。是当系统的物理内存不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。
分配太多的Swap空间,会浪费磁盘空间,而Swap空间太少,则系统会发生错误。一般在内存小于2G的情况下,交换分区应为内存的2倍。对于树莓派来说,可以设置为2GB。当然也需要考虑 microSD 卡容量和使用情况。
QQ截图20171223171239.png


错误的做法
下面是错误的做法!错误的做法!错误的做法!重要的事情说三遍!!!
一直以来,我以为树莓派的 swap 和普通 linux 的差不多,也就照着某些网站上的方法修改树莓派的交换分区大小。
熟悉的套路开始了!
首先,查看内存大小:
$ free -m
total used free shared buff/cache available
Mem: 976 35 226 12 714 864
Swap: 99 0 99
然后:
$ sudo dd if=/dev/zero of=/swapfile bs=1024 count=102400
$ sudo mkswap /swapfile
$ sudo chown root:root /swapfile
$ sudo chmod 0600 /swapfile
$ sudo swapon /swapfile
$ sudo vi /etc/fstab
接着,添加以下内容到fstab文件尾:
/swapfile swap swap defaults 0 0
查看是否有swap空间
$ free -m
重启后,你就会发现树莓派的 swap 又回到还原了。

正确的做法
如果你按照上面的方法做了,只需删除 swap 分区:
$ sudo swapoff /swapfile
$ sudo rm /swapfile
然后将自己在 /etc/fstab 文件添加的那一行删除。
下面开始正式修改树莓派的 swap 的大小:
sudo vi /etc/dphys-swapfile
将 CONF_SWAPSIZE 的值修改成你想要的大小。 一般在内存小于2G的情况下,交换分区应为内存的2倍!
然后,重新启动 dphys-swapfile 文件服务:
sudo /etc/init.d/dphys-swapfile restart
最后查看大小:
$ free -h
total used free shared buff/cache available
Mem: 976M 66M 801M 12M 108M 849M
Swap: 2.0G 0B 2.0G
后记
在修改 /etc/fstab 文件的时候,我在下面的注释里发现了这样的两句话:
# a swapfile is not a swap partition, no line here
# use dphys-swapfile swap[on|off] for that
不过当时并不知道 dphys-swapfile 是什么,也不知道它在哪。后来通过搜索 dphys-swapfile 查阅到这篇文章 How to change Raspberry Pi’s Swapfile Size on Raspbian,终于找到了正确修改树莓派交换分区的方法。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

关闭

站长推荐上一条 /4 下一条

手机版|爱板网

GMT+8, 2018-12-14 05:19 , Processed in 0.086339 second(s), 13 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-5   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001056号

Powered by Discuz!

返回顶部