如何暂时将文件写入文件系统,但实际上将其保存在RAM上?
问题描述:
我有一个服务器接收HTTP请求中的文件,我想让该文件可用于另一个进程,但我不希望将该文件写入磁盘的I/O开销。如何暂时将文件写入文件系统,但实际上将其保存在RAM上?
在Linux中是否有任何实际映射到RAM的目录,所以我启动的过程可以像正常文件一样访问路径?
我知道如果我在普通文件中这样做,那么很有可能文件不会因为缓存而被刷新到磁盘,但那不是我要找的。
答
RAM没有保证的位置,但it's not particularly hard to convert /tmp
to be backed by RAM如果你有足够的RAM备用。鉴于/tmp
is cleaned out on boot anyway,它是RAM磁盘的理想选择,因为功率损失造成的数据丢失并不重要;无论如何,数据将在启动时被清除。
+0
*鉴于'/ tmp'在启动时被清除* [不一定](http://serverfault.com/questions/377348/when-does- TMP-GET-清除)。虽然我同意,但没有人应该依赖'/ tmp'中的内容来保存任何*。 –
答
您可以使用以下方法来创建RAM磁盘(如每these instructions):
mkdir /mnt/ramdisk
mount -t ramfs -o size=512m ramfs /mnt/ramdisk
另外还有像缓存Redis的库,通常用于这类问题 – dan08
IPC。例如:共享内存,套接字。 –
@KarolyHorvath我无法控制其他程序,只有一个接收文件路径作为参数的命令行API。 –