《树莓派实战秘籍》——1.20 技巧20使用Swap添加额外的内存

简介:

本节书摘来异步社区《树莓派实战秘籍》一书中的第1章,第1.20节,作者:【美】Ruth Suehle ,Tom Callaway,更多章节内容可以访问云栖社区“异步社区”公众号查看

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来禁止这个选项。

任何更改值都不会立刻生效,直到你运行如下命令:

048b7658b4fbc7a784c6a3aa6420bdaeaf0736a7

Pidora在默认第一次启动时配置了512MB的swap(除非用户另有指定),这个文件位于/swap0目录下,并通过rootfs-resize服务在/etc/fstab中配置。

对于其他的Linux发行版(或者放置一个交换文件到一个不同的位置),你需要手工创建交换文件:

3ac5f31227941252177709b3fd56a835eede2ef0

上述命令将在/path/to/swapfile位置生成一个1GB的swap文件(1024×1 M = 1 GB),你需要将这个位置改成你的交换文件的实际位置。要在启动后自动启用这个swap文件,可以在/etc/fstab文件中添加一个新行:

01308b788830290c6e658c406de041c71d404235

你可以在free命令的输出中看到更多的内存(作为swap):

aefe3bd7f8bf91d4b7d1ebaa5788959f3743cb5b
相关文章
|
存储 C语言
【C语言进阶】数据的存储----浮点型篇
【C语言进阶】数据的存储----浮点型篇
740 0
|
SQL 关系型数据库 MySQL
MySQL事务日志-Undo Log工作原理分析
事务的持久性是交由Redo Log来保证,原子性则是交由Undo Log来保证。如果事务中的SQL执行到一半出现错误,需要把前面已经执行过的SQL撤销以达到原子性的目的,这个过程也叫做"回滚",所以Undo Log也叫回滚日志。
691 7
MySQL事务日志-Undo Log工作原理分析
|
Unix Linux
Linux中的Crontab:定时任务管理器
`crontab`是Linux下的定时任务管理器,用于设置周期性执行的任务。用户可以通过`crontab -l`查看任务,`crontab -e`编辑,`crontab -r`删除任务。任务格式为:`* * * * * command`,分别代表分钟、小时、日期、月份、星期,例如`30 10 * * * /path/to/script.sh`。注意确保命令有执行权限,处理环境变量,并关注日志文件 `/var/log/syslog` 或 `/var/log/cron`。学会使用`crontab`能有效自动化Linux系统的日常任务。
|
设计模式 前端开发 安全
理解最常用的MVC分层模型及其变种
【6月更文挑战第24天】 本文介绍架构模式如MVC、MVVM和MVP是解决软件结构问题的通用方案。。每种模式有其优缺点,适用场景不同。
934 0
理解最常用的MVC分层模型及其变种
|
安全 数据安全/隐私保护
kali 安装awvs
kali 安装awvs
1179 0
|
JavaScript Python
不吹不黑,jupyter lab 3.0客观使用体验
不吹不黑,jupyter lab 3.0客观使用体验
536 0
|
存储 Linux 文件存储
Linux使用Docker部署Traefik容器并实现远程访问管理界面-1
Linux使用Docker部署Traefik容器并实现远程访问管理界面
580 0
|
数据采集 Python
Python正则表达式提取车牌号
Python正则表达式提取车牌号
262 0
N..
|
存储 JSON 前端开发
JSON
JSON
N..
492 1
TU^
|
存储 C语言
C语言浮点数在内存中的存储
在C语言中,浮点数类型用float和double表示。float类型使用4个字节(32位),而double类型使用8个字节(64位)。浮点数表示的范围:float.h中定义
TU^
1401 0

热门文章

最新文章