有没有办法强制特定文件仅存在于 RAM 中?

有没有办法强制特定文件仅存在于 RAM 中?

我喜欢这个建议/var/log为了减少磁盘写入,安装一个 tmpfs 。

有没有办法只对单个文件做类似的事情,例如~/.xsession-errors


我提出这个问题的动机来自于电源TOP

The program 'gnome-do' is writing to file '.xsession-errors' on /dev/sdb2.
This prevents the disk from going to powersave mode.

但人们也可能希望这样做以加快 IO 密集型程序的速度。

答案1

不,您无法强制不将单个文件写入磁盘。对文件的写入将传递给文件系统代码:如果文件系统由内存支持(例如tmpfs),则数据将写入(虚拟)内存位置;如果文件系统由块设备支持(例如 ext3/4),则数据将写入块设备。

但是,您可以将特定文件符号链接到tmpfs文件系统中的某个位置;只要满足以下条件,此方法就会有效:(1)符号链接的目标存在,并且(2)链接未被删除且文件在原始(基于磁盘的)文件系统中重新创建。

至于~/.xession-errors,有一些特殊处理/etc/X11/Xsession(截至x11-common版本 1:7.5+5ubuntu1 的第 63-72 行):如果~/.xsession-errors已经是符号链接,然后使用临时文件(在目录$TMPDIR或中)。因此,如果您的或文件系统是从 RAM 挂载的,那么您就大功告成了。/tmp/tmp$TMPDIR

相关内容