/tmp 的好文件系统?

Nat*_*man 36 filesystem tmp

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

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

Mar*_*ppi 29

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

  • tmpfs 将在需要时使用交换 - 因此您的交换空间可以作为 /tmp 执行双重任务,无需分配额外的空间。 (3认同)
  • 我有 2GB 的 RAM,所以这可能不是一个选择。 (2认同)
  • 实际上这应该是足够的RAM。/tmp 通常不会在系统的正常使用中使用*那么多*(无论是什么)。 (2认同)

qbi*_*qbi 26

这里有几个不错的选择:

  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/3:您在问题中说您不需要任何花哨的功能。但是我建议使用日记。因为如果你使用 ext2 并且你有一个相当大的/tmp,检查它需要一些时间。在许多情况下,ext3 启动速度更快。因此,我建议使用日记。
  3. ext4reiserfs等:一些软件/tmp用于存储大量小文件。所以在某些情况下,没有更多的空闲块并且文件系统已满。ext4 和 reiserfs 以不同的方式存储文件。因此,将它们用于您的/tmp.

如果您的计算机长时间运行,最好删除/tmp. tmpreaper是一种为您做到这一点的解决方案。

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


Nic*_*ght 8

如果您不希望它占用 RAM,我会将其作为 ext2 运行。没有理由为您不(不应该)在重新启动时关心其数据的文件系统吃日志的小性能损失。

实际上,从头开始,您可能应该使用ext4并禁用其日志,它应该比ext2快。将其格式化为 ext4,并fstab使用 mount option 将其粘贴data=writeback


小智 7

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

话虽这么说……关于使用 ramdisk 应该考虑的事情/tmp(这取自别处旧帖子):

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

当它被大量使用时,这是一种诱惑——“我们将 /tmp 放入 RAM 磁盘,它会加快访问速度,当系统重新启动/关闭时,没有什么可以清理的”。但是,如果您正在考虑将临时空间实现为将被交换的 RAM 磁盘,那么我会考虑其他程序使用系统交换空间的后果。如果交换是一种“紧急溢出”的形式,当系统陷入困境并需要它时,您最不需要的就是让失控的进程填充 /tmp 消耗交换空间,消耗内存,造成压力要交换到磁盘的 VM 子系统。在交换活动之间,seek()


Joã*_*nto 6

使用带有特定挂载选项的 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.
Run Code Online (Sandbox Code Playgroud)