1.20 技巧20使用Swap添加额外的内存
你的树莓派需要更多一点的内存吗?Swap可以让你交换磁盘空间和内存。
Linux长久以来就包含了swap的概念,其核心是在RAM和磁盘之间移动内存页的能力。在实际应用中,这种能力给操作系统提供了更多的可用内存(以磁盘空间的成本)。因为B型树莓派只有512MB内存,增加swap文件(或分区)以提高可用内存的想法很吸引人。
Swap的危害
在我们开始之前,你应该要了解一下这种方法的缺点。Swap的速度只是存储设备的写入速度,同时这也是一个高度写密集型操作。从实用的角度来看,这就是说,如果你增加了树莓派的SD卡中的交换空间,这将造成整体磁盘的性能显著下降,特别值得注意的是它还会缩短SD卡的寿命。
因为树莓派的整个操作系统都运行在SD卡上,我们强烈建议你不要将swap文件或分区放置在SD卡上。这些缺点也适用于连接到树莓派的USB闪存驱动器,因为它们也是基于闪存的存储设备,添加swap文件到USB闪存驱动器将造成同样的整体性能下降和寿命缩短。如果你真的想添加swap,最好是通过连接在SATA到USB转换器之间的一个实际的外部硬盘驱动器上来实现。
Raspbian预配置中通过dphys-swapfile文件启用了100MB swap文件。你可以通过编辑/etc/dphys-swapfile文件来修改此交换文件的设置,它只有一个选项:CONF_SWAPSIZE。如果你想增加交换文件的大小,可以把该值从100改为一个更大的值(取决于你的SD卡上的可用空间)。或者,你也可以通过将该值改为++0来禁止这个选项。
任何更改值都不会立刻生效,直到你运行如下命令:
Pidora在默认第一次启动时配置了512MB的swap(除非用户另有指定),这个文件位于/swap0目录下,并通过rootfs-resize服务在/etc/fstab中配置。
对于其他的Linux发行版(或者放置一个交换文件到一个不同的位置),你需要手工创建交换文件:
上述命令将在/path/to/swapfile位置生成一个1GB的swap文件(1024×1 M = 1 GB),你需要将这个位置改成你的交换文件的实际位置。要在启动后自动启用这个swap文件,可以在/etc/fstab文件中添加一个新行:
https://yqfile.alicdn.com/f40dac1d08a482db030ba24679406bd419f60c47.png" >
你可以在free命令的输出中看到更多的内存(作为swap):