Nathan Osman Asked: 2010-08-08 17:49:42 +0800 CST2010-08-08 17:49:42 +0800 CST 2010-08-08 17:49:42 +0800 CST /tmp 的好文件系统? 772 我正在考虑将 /tmp 放在它自己的分区上……用什么文件系统来格式化它? 我问的原因是因为存储在 /tmp 中的数据不是永久的,所以我不需要日志、花哨的索引或任何东西。 filesystem tmp 8 个回答 Voted Best Answer Marco Ceppi 2010-08-08T18:47:44+08:002010-08-08T18:47:44+08:00 如果你有足够的 RAM 来提供它,我有时会发现移动/tmp到 ram ( tmpfs) 是最好的解决方案(特别是在我使用大量磁盘密集型 IO 东西的设置上 - MySQL 等)。 qbi 2010-08-09T00:30:49+08:002010-08-09T00:30:49+08:00 这里有几个不错的选择: 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. 大小将在不删除现有文件的情况下原地增加。 ext2/3:您在问题中说您不需要任何花哨的功能。但是我建议使用期刊。因为如果你使用 ext2 并且你有一个很大的/tmp,检查它需要一些时间。在许多情况下,ext3 启动速度更快。因此,我建议使用日记。 ext4 , reiserfs等:一些软件/tmp用于存储大量小文件。所以在某些情况下没有更多的空闲块并且文件系统已满。ext4 和 reiserfs 以不同的方式存储文件。因此,将它们用于您的/tmp. 如果您的计算机运行了很长时间,最好删除/tmp. tmpreaper是为您做到这一点的一种解决方案。 但是我的第一选择是使用tmpfs. Nicholas Knight 2010-08-08T18:59:13+08:002010-08-08T18:59:13+08:00 如果您不希望它吃掉 RAM,我只需将其作为 ext2 运行。没有理由在重新启动后对您不(不应该)关心其数据的文件系统进行日志记录的小幅性能损失。 实际上,从头开始,您可能应该使用 ext4 并禁用它的日志,它应该比 ext2 快。将其格式化为 ext4,并fstab使用 mount 选项将其粘贴data=writeback。 Avery Payne 2010-08-09T10:02:32+08:002010-08-09T10:02:32+08:00 使用tmpfs应该可以满足您的需求,前提是您安装了足够的 RAM。 话虽这么说......关于使用 ramdisk 应该考虑的事情/tmp(这取自其他地方的旧帖子): /tmp 应该在真正的磁盘区域上还是允许基本上在 SWAP 区域(或 tmpfs)上实现? 当它被大量使用时,这是一种诱惑——“我们将 /tmp 放入 RAM 磁盘,它会加快访问速度,并且当系统重新启动/关闭时,没有什么可清理的”。但是,如果您正在考虑将临时空间实现为将被交换的 RAM 磁盘,那么我会考虑其他程序对系统交换空间使用的影响。如果交换作为“紧急溢出”的一种形式存在,当系统处于紧急状态并需要它时,您最不需要的就是让一个失控的进程占用交换空间,填充 /tmp,消耗内存,从而对要交换到磁盘的 VM 子系统。在交换活动之间,seek() João Pinto 2010-08-09T00:11:08+08:002010-08-09T00:11:08+08:00 使用带有特定挂载选项的 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. Michał Šrajer 2011-08-08T09:03:01+08:002011-08-08T09:03:01+08:00 我对 ext4 很满意。如果你想调整它,你可以使用一些挂载选项,如果你有很多内存,你可以使用 tmpfs。 Matt Smith 2012-07-21T19:33:59+08:002012-07-21T19:33:59+08:00 对于那些询问你为什么想要一个单独的 /tmp 分区的人,我确信有很多原因,正如一些人已经说过的,但我今天发现特别相关的一个原因是,如果你在 SSD 上运行 /,您想最小化对该驱动器的写入,因此移动 /tmp 是一个好主意,因为它是文件系统的一个区域,往往会发生很大变化。 Christian DeKonink 2012-06-28T18:59:14+08:002012-06-28T18:59:14+08:00 我认为 tmpfs 可能是一个不好的选择,因为通常 /tmp 是世界可写的,因此任何人都可以将其填满,如果填满,它将占用您所有的内存,并且您的服务器将缓慢爬行
如果你有足够的 RAM 来提供它,我有时会发现移动
/tmp
到 ram (tmpfs
) 是最好的解决方案(特别是在我使用大量磁盘密集型 IO 东西的设置上 - MySQL 等)。这里有几个不错的选择:
none /tmp tmpfs size=64M,mode=1777 0 0
请在您的/etc/fstab
. 您可以将 更改为size
您喜欢的值。如果您在某些时候认为它太少,您可以使用mount
来增加大小:mount -t tmpfs tmpfs /tmp -o size=128M,mode=1777,remount
. 大小将在不删除现有文件的情况下原地增加。/tmp
,检查它需要一些时间。在许多情况下,ext3 启动速度更快。因此,我建议使用日记。/tmp
用于存储大量小文件。所以在某些情况下没有更多的空闲块并且文件系统已满。ext4 和 reiserfs 以不同的方式存储文件。因此,将它们用于您的/tmp
.如果您的计算机运行了很长时间,最好删除
/tmp
.tmpreaper
是为您做到这一点的一种解决方案。但是我的第一选择是使用
tmpfs
.如果您不希望它吃掉 RAM,
我只需将其作为 ext2 运行。没有理由在重新启动后对您不(不应该)关心其数据的文件系统进行日志记录的小幅性能损失。实际上,从头开始,您可能应该使用 ext4 并禁用它的日志,它应该比 ext2 快。将其格式化为 ext4,并
fstab
使用 mount 选项将其粘贴data=writeback
。使用
tmpfs
应该可以满足您的需求,前提是您安装了足够的 RAM。话虽这么说......关于使用 ramdisk 应该考虑的事情
/tmp
(这取自其他地方的旧帖子):当它被大量使用时,这是一种诱惑——“我们将 /tmp 放入 RAM 磁盘,它会加快访问速度,并且当系统重新启动/关闭时,没有什么可清理的”。但是,如果您正在考虑将临时空间实现为将被交换的 RAM 磁盘,那么我会考虑其他程序对系统交换空间使用的影响。如果交换作为“紧急溢出”的一种形式存在,当系统处于紧急状态并需要它时,您最不需要的就是让一个失控的进程占用交换空间,填充 /tmp,消耗内存,从而对要交换到磁盘的 VM 子系统。在交换活动之间,
seek()
使用带有特定挂载选项的 ext4 应该没问题。使用以下挂载选项:
我对 ext4 很满意。如果你想调整它,你可以使用一些挂载选项,如果你有很多内存,你可以使用 tmpfs。
对于那些询问你为什么想要一个单独的 /tmp 分区的人,我确信有很多原因,正如一些人已经说过的,但我今天发现特别相关的一个原因是,如果你在 SSD 上运行 /,您想最小化对该驱动器的写入,因此移动 /tmp 是一个好主意,因为它是文件系统的一个区域,往往会发生很大变化。
我认为 tmpfs 可能是一个不好的选择,因为通常 /tmp 是世界可写的,因此任何人都可以将其填满,如果填满,它将占用您所有的内存,并且您的服务器将缓慢爬行