我想在用户计算机上部署 Linux,使状态在启动之间永不保留(用户在外部可移动设备上明确保存的状态除外)。系统映像将存储在只读可移动媒体上,也可能存储在网络上。
我的所有目标计算机都安装了 SSD。如果不使用它们,那将是一种浪费,因此我计划将它们格式化为巨大的交换分区。利用这一点,因为可移动媒体或网络与 SSD 磁盘相比速度较慢,我认为将整个系统映像(按需)加载到 RAM 上(作为tmpfs
根文件系统)并让其利用内存交换是一个好主意。
问题是,我只能找到关于tmpfs
交换性能的抱怨。它有什么不好?系统怎么会无法决定哪些页面保留在 RAM 上或交换上?它tmpfs
与其他内存的处理方式是否不同?这种设置会导致什么性能下降?
答案1
将问题与 tmpfs 关联起来可能存在选择性偏差。内存不足的人更有可能找到并报告他们的 tmpfs 使用情况。
无论如何,只读 root 在嵌入式和实时发行版中很常见。一种解决方案是 overlayroot,它是 overlayfs 的包装器。手册页和配置文件有一些文档可以帮助您入门。另请参阅以下帖子: 使用 Overlayroot 保护 Ubuntu 上的根文件系统
可能不需要将整个磁盘映像加载到 RAM 支持的存储中。
- 复制整个内容会减慢初始启动速度。
- 缓存已经存在,因此重复的块读取将会很快。
- 即使缓存冷却,从固态存储读取的速度也可能相当快:比旋转介质(光学或磁性)的延迟低几十到几百倍。