我需要创build很多临时文件,我需要快速访问,所以我正在考虑使用RAM磁盘。 问题是,临时文件可能会相当大(1-4 GB),在这种情况下,磁盘存储将是确定的。
有没有办法在RAM磁盘和物理硬盘之间创build混合,以便在最坏的情况下(当我遇到大的临时文件时)使用硬盘?
– -编辑 – –
我买不起更快的SSD,而且我不需要持久性存储,而且我也不需要100 GB的临时数据。 我正在使用我的家用电脑(2 GHz AMD系统…)。 我收到一个关于UnionFS的小贴士。 什么是它的经验?
使用tmpfs和一个大的交换分区或文件。 这个文件系统会将数据caching在内存中,如果它们不适合内存,将它们交换到磁盘。
为什么不尝试使用固态SSD驱动器? 您可以获得100 GB或更多的容量,并且比标准磁盘快得多。
我会select使用硬件RAID控制器来执行RAID 0(条带化)。 我引用了一个video编码服务器,并且临时驱动器是RAID 0中的15k SAS,它通过video咀嚼任何东西。
根据您希望保留这些临时文件的时间长短,您可以使用支持延迟分配的文件系统,例如XFS或ext4。 这样的文件系统是“足够聪明的”,如果一个短命的文件在被分配之前被删除(仍然在caching中),那么它永远不会被分配在光盘上,也不会写入任何数据。
我用XFS和ext3做了这个testing,差别太惊人了,一个testing程序创build了很多临时文件,然后在一段时间后删除它们,XFS上几乎没有IO,但在ext3上加载。
但我同意其他的海报,tmpfs也不错(实际上可能会更好)
你问你是否可以创build一个ramdrive来caching一些临时文件和另一个磁盘空间分区来存放大的临时文件,并根据需要在两者之间自动混合匹配? 这听起来有点复杂的一面来实现。 你可能会更好,这取决于预算,看着安装一个SSD驱动器用于临时文件/交换,或者看看获得一些硬盘和分条数据的读/写。
我想你可以尝试使用两个驱动器,一个物理分区和一个完全在内存中的软件RAID来创build一个JBOD(只是一堆磁盘)。 你可能会问这个问题,因为这个盘不是真的。 如果确实有效,它可能会产生一些有趣的数字。 它会起作用吗? 不知道。 还没有听说过这样做的人,但这将是我首先研究的方法。
就我个人而言,我会考虑升级磁盘到更快的驱动器(如15,000 RPM),并使用RAID来对它们,软件或硬件RAID(不是在主板上)或使用SSD路由进行条带化,因为这些可以快速燃烧,但会将您的钱包好。 否则,你可以看看运行一个64位的操作系统,并获得足够的内存来创build一个几gig的RAM磁盘,以实现你在做什么。