/ tmp的文件系统好吗?

我正在考虑在自己的分区上使用/ tmp …用它来格式化它的好文件系统是什么?

我问的原因是因为存储在/ tmp中的数据不是永久性的,所以我不需要日记,花哨的索引或任何东西。

我有时发现移动/tmp到ram( tmpfs )是最好的解决方案(特别是在我使用大量磁盘密集的IO东西的设置 – MySQL等),如果你有足够的RAM来提供它。

这里有几个不错的选择:

  1. tmpfs :是一个将文件存储在RAM中的文件系统。 这并不意味着文件系统会占用你所有的RAM。 相反,它只需要它真正需要的数量。 通常只需要几MB。 如果您将使用它,请在/etc/fstab添加如下行: none /tmp tmpfs size=64M,mode=1777 0 0 。 您可以将size更改为您喜欢的值。 如果你认为它太少了,可以使用mount来增加大小: mount -t tmpfs tmpfs /tmp -o size=128M,mode=1777,remount 。 在不删除现有文件的情况下,将增加大小。
  2. ext2 / 3 :你在问题中说你不需要任何花哨的function。 但是我建议使用期刊。 因为如果你使用ext2并且你有一个非常大的/tmp它需要一些时间来检查它。 ext3可以更快地启动任何案例。 因此我建议使用日记function。
  3. ext4reiserfs等:某些软件使用/tmp存储大量小文件。 所以在某些情况下,没有更多的空闲块,文件系统已满。 ext4和reiserfs以不同的方式存储文件。 因此,对于/tmp使用它们可能是一个不错的选择。

如果您的计算机运行很长时间,最好删除/tmp未使用的文件。 tmpreaper是一个为您做到这一点的解决方案。

但是我的第一选择是使用tmpfs

如果你不想让它吃RAM, 我就把它作为ext2运行 。 没有理由为一个文件系统吃掉日记记录的小性能,这个文件系统的数据在重新启动时你不应该(不应该)关心。

实际上,刮一下,你应该使用ext4并禁用它的日志,它应该比ext2快。 将其格式化为ext4,并使用mount选项data=writeback将其粘贴到fstab

如果您安装了足够的RAM ,使用tmpfs应该可以满足您的需求。

这就是说…对于使用/tmp的ramdisk(这取自其他地方的旧post )应该考虑的事情:

  • / tmp应该在真正的磁盘区域还是允许基本上在SWAP区域(或tmpfs)上实现?

当它被大量使用时,这是一个诱惑 – “我们将/ tmp放入RAM磁盘,它将加快访问速度,当系统重新启动/关闭时,没有什么可以清理”。 但是,如果您正在考虑将临时空间实现为将要交换的RAM磁盘,那么我会考虑其他程序对系统交换空间使用的影响。 如果交换存在作为“紧急溢出”的forms,当系统处于直线并且需要它时,你需要的最后一件事就是让失控过程消耗交换空间填充/ tmp,消耗内存,导致压力VM子系统交换到磁盘。 在交换活动和附加I / O流进入RAM磁盘之间(这反过来可能导致额外的页面输入以满足seek() ),您的系统将很快变为I / O绑定。

使用具有特定安装选项的ext4应该没问题。 使用以下安装选项:

 barrier=0 : Significantly improves file write operations in some scenarios noatime : Don't update file last access time, you don't need this on /tmp files and it should help with write operations performance. 

我对ext4很满意。 如果你想调整它,可以使用一些挂载选项,如果你有很多ram,你可以使用tmpfs。

为了回应那些询问为什么你想要一个单独的/ tmp分区的人,我确信有很多原因,正如一些人已经说过的那样,但我今天特别相关的一个原因是,如果你在SSD上运行/,你想最小化对该驱动器的写入,因此移动/ tmp是一个好主意,因为它是文件系统的一个区域,往往会发生很大变化。

我认为tmpfs可能是一个糟糕的选择,因为通常/ tmp是世界可写的,所以任何人都可以填满它,如果它填满它将占用你所有的内存,你的服务器将慢慢爬行