在嵌入式 Linux 设置上没有交换分区是一个坏主意吗?

在嵌入式 Linux 设置上没有交换分区是一个坏主意吗?

我有一个通过 buildroot 创建的小型嵌入式 Linux 内核和文件系统,安装在 x86 板上运行的紧凑型闪存驱动器上。我正在使用 initramfs(由于担心断电),但在 CF 驱动器的 ext3 分区上安装了少量目录,以保存必须持久的数据。然而,最近我一直在阅读有关交换分区及其用途的信息,因为我当前的设置根本不使用交换分区。我想知道这安全吗?我预计设备上运行的应用程序不会使用大量内存,但无论如何创建交换分区是否更好?我非常清楚可以对 CF 设备进行的有限写入,因此如果它不重要,那么我宁愿不使用交换分区。如果我在没有交换分区的情况下继续,最坏的情况会是什么?

答案1

不,这不是一个坏主意。您可能会发现周围的许多设备都在运行没有交换分区的 Linux。例如,有很多内置linux的DLink路由器型号。唯一可能的问题是它可能会耗尽内存。但是,对于嵌入式解决方案,如果系统设计正确(无内存泄漏等)并且不允许用户自己启动任何额外的程序,则不会发生这种情况。

答案2

您应该配置内存,以便正常工作负载适合其中(磁盘比内存慢得多)。根据嵌入式设备运行有限、固定工作负载的定义,其内存需求非常可预测。所以添加swap是没有意义的。

答案3

其实是推荐的。在闪存上设置交换分区会磨损它(闪存有几个 100k 的写入周期)。

相关内容