我遇到一个问题,它似乎触及了我读到的有关 tmpfs 的所有限制。我非常乐意听到任何人对可能的解决方案的评论。
我有一个应用程序,它在运行时会生成一个大文件。这个文件可以增长到几 GB。
在程序执行期间,对此文件的 I/O 操作非常密集,任何管道都会对正在运行的应用程序产生重大的性能影响。
为了尝试加快速度,我创建了一个 tmpfs,它运行良好,性能得到了显著改善。但是,当 tmpfs 耗尽空间(~50%)物理 RAM 使用率时,应用程序会崩溃。这并不奇怪。
只有在创建数据的进程完成时,才需要应用程序生成的数据。因此,我需要的是一个基于 RAM 的文件系统,它将填充来自应用程序的数据。当这个基于 RAM 的文件系统已满时,它会将基于 RAM 的 tmpfs 的完整内容推送到物理磁盘,完全释放 RAM,然后继续接受来自应用程序的数据,再次填充 RAM。从而在应用程序运行的绝大多数时间内保持最小的 I/O 管道延迟。
当该过程完成时,我希望找到一个部分存在于磁盘上、部分存在于 RAM 中的单个大文件。
有什么想法吗?
基于 RAM 的文件系统,溢出到物理磁盘并保持最大 I/O 性能
相关内容
- 奇怪的 PID 较少的 TCP 进程阻塞端口 80 导致 Apache 无法启动
- Linux 中的管道和 tail -f
- Grub 启动 Ubuntu、Windows10 和 Windows 11
- 为什么在离开 ssh bash 连接时必须退出两次? [关闭]
- FreeBSD/Ubuntu 之间的升级过程
- Kubuntu 19.10 中的 FileStash 支持
- 在 Opera 中自动调整图像大小
- 如何为 juju 机器设置静态 IP?
- 利用“Intel Turbo Memory”卡进行交换或快速启动
- Visual Studios 2012 调试 MVC 应用程序在随机窗口中打开 Chrome 浏览器