it-swarm.cn

/ tmp好的文件系统?

我正在考虑将/ tmp放在其自己的分区上...用什么格式格式化它是一个好的文件系统?

我问的原因是因为存储在/ tmp中的数据不是永久的,所以我不需要日志记录,奇特的索引或其他任何东西。

31
Nathan Osman

有时,我发现将/tmp移到ram(tmpfs)是最好的解决方案(特别是在我的设置中,该设置使用大量的磁盘密集型IO东西-MySQL,等等)足够RAM进行馈送。

27
Marco Ceppi

这里有几个不错的选择:

  1. tmpfs:是一个将文件存储在RAM中的文件系统。这并不意味着文件系统将耗尽所有RAM。相反,它只需要它真正需要的数量。通常只需要一些MB。如果要使用它,请在none /tmp tmpfs size=64M,mode=1777 0 0上添加以下行:/etc/fstab。您可以将size更改为所需的值。如果您认为它太小了,可以使用mount来增加大小:mount -t tmpfs tmpfs /tmp -o size=128M,mode=1777,remount。在不删除现有文件的情况下,将增加其大小。
  2. ext2/:您在问题中说您不需要任何精美的功能。但是,我建议您使用日记本。因为如果您使用ext2,并且您有一个很大的/tmp,则需要花费一些时间进行检查。 ext3在许多情况下都可以更快地启动。因此,我建议使用日记。
  3. ext4reiserfs等:某些软件使用/tmp来存储大量的小文件。因此,在某些情况下,没有更多的可用块,并且文件系统已满。 ext4和reiserfs也以不同的方式存储文件。因此,最好将它们用于/tmp

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

但是,我的首选是使用tmpfs

25
qbi

如果您不希望它占用RAM, 我只是将其作为ext2运行。对于没有(不必)在重新启动过程中关心数据的文件系统,没有理由为日志功能带来小小的性能损失。

实际上,您应该使用ext4并禁用其日志,这应该比ext2更快。将其格式化为ext4,并使用安装选项data=writeback将其粘贴在fstab中。

7
Nicholas Knight

使用tmpfs应该可以满足您的需求,前提是您已安装了足够的RAM

话虽这么说...对于将ramdisk用于/tmp应该考虑的一些事情(取自 其他地方的旧帖子 ):

  • / tmp应该在实际磁盘区域上还是应该基本上在SWAP区域(或tmpfs)上实现?

当它被大量使用时,这是一种诱惑-“我们将/ tmp放入RAM磁盘中,它将加快访问速度,并且当系统重新启动/关闭时,没有任何清理余地” 。但是,如果您考虑将临时空间实现为将要交换的RAM磁盘,那么我会考虑其他程序对系统交换空间使用量的影响。如果在系统陷入困境并需要它时,交换作为“紧急溢出”的形式存在,那么您需要做的最后一件事就是使失控进程占用/ tmp占用交换空间,从而消耗内存,从而给系统造成压力。 VM子系统交换到磁盘。在交换活动和流向RAM磁盘的附加I/O之间(这反过来可能导致其他分页操作满足seek()),您的系统将迅速成为I/O绑定的对象。

6
Avery Payne

将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.
5
João Pinto

我对ext4感到满意。如果您想对其进行调整,则可以使用一些挂载选项;如果您有很多ram,则可以使用tmpfs。

3
Michał Šrajer

在回答有关为什么要一个单独的/ tmp分区的问题时,我确定有很多原因,正如一些人已经说过的那样,但是我今天特别了解的一个原因是,如果您在SSD上运行/您希望最小化对该驱动器的写入,因此移动/ tmp是一个好主意,因为它是文件系统中一个变化很大的区域。

2
Matt Smith

我认为tmpfs可能是一个不好的选择,因为通常/ tmp是世界可写的,因此任何人都可以填充它,如果填充了它,它将占用您的所有内存,并且服务器将缓慢进行爬网

0
Christian DeKonink