注意,您不需要为了让POSIX共享的内存工作而安装tmpfs文件系统;您只需要在内核中支持tmpfs就可以了。
如果我必须一下子说清楚tmpfs,我会说tmpfs就象虚拟磁盘(ramdisk),但不一样。
幸运的是,tmpfs允许您在安装或重新安装文件系统的时候指定文件系统容量的最大值上限。
首先,我们会简单地介绍一下tmpfs,也就是我们知道的虚拟内存(virtualmemory,VM)文件系统。
总而言之,这让tmpfs成为我有机会遇到的最好的基于RAM的文件系统。
刚开始这看起来可能有点武断,但请记住tmpfs也是我们知道的“虚拟内存文件系统”。
这看起来可能不象是个积极因素,tmpfs数据在重新启动之后不会保留,因为虚拟内存本质上就是易失的。
在mount命令执行之后,文件系统立即就被安装并且可以使用了,类型是tmpfs。
tmpfs还使用磁盘交换空间来存储,并且当为存储文件而请求页面时,使用虚拟内存(VM)子系统。
由于在重新引导时这些消息不需要持久存储,所以这个问题的解决方案是使用tmpfs。
因为典型的tmpfs文件系统会完全驻留在RAM中,读写几乎可以是瞬间的。
不幸的是,这种“终止进程”的解决方案在tmpfs的使用增加引起VM耗尽的情况下通常会导致不良后果。
注意,不需运行mkfs.tmpfs;事实上,那是不可能的,因为没有这样的命令存在。
作为引导过程的一部分,UnionFS使用tmpfs来创建读写根文件系统。
在某些UNIX变体下,特别是Solaris和Linux,您可以使用tmpfs文件系统;该文件系统使用VM作为存储空间。
tmpfs文件系统所知道的就是它正在使用某种形式的虚拟内存。
速度―因为tmpfs驻留在RAM,所以读和写几乎都是瞬时的。
所以,您的X服务器会被终止,而引起低VM情况的根本原因(tmpfs)却没有被解决。
tmpfs文件系统需要VM子系统的页面来存储文件。
正如我前面提到的一样,tmpfs既可以使用RAM,也可以使用交换分区。
如果您希望获得额外的加速,同样可以使用tmpfs文件系统。
然而,SystemV共享的内存不需要内核中有tmpfs就可以工作。
象虚拟磁盘一样,tmpfs可以使用您的RAM,但它也可以使用您的交换分区来存储。
tmpfs的一个缺点是当系统重新引导时会丢失所有数据。
tmpfs自己并不知道这些页面是在交换分区还是在RAM中;做这种决定是VM子系统的工作。
这是因为您需要内核tmpfs支持来使用POSIX共享的内存。