gpt4 book ai didi

linux - 在同一个 Linux 目录中有数百或数千个文件是否可以(性能方面)?

转载 作者:IT王子 更新时间:2023-10-29 00:04:10 24 4
gpt4 key购买 nike

众所周知,在 Windows 中,当您尝试打开其中一个文件时,包含太多文件的目录会产生糟糕的性能。我有一个程序只能在 Linux 中执行(目前它在 Debian-Lenny 上,但我不想具体说明这个发行版)并将许多文件写入同一目录(有点像存储库)。我所说的“很多”是指每天几十个,这意味着一年后我预计会有大约 5000-10000 个文件。它们应该被保留(一旦文件被创建,它就永远不会被删除)并且假定硬盘具有所需的容量(如果没有,则应该升级)。这些文件的大小范围很广,从几 KB 到几十 MB(但不多于此)。名称始终是数值,增量生成。我担心长期性能下降,所以我会问:

  • 可以全部写入同一个目录吗?或者我应该考虑为每个 X 文件创建一组子目录?
  • 我是否需要为此类目录使用特定的文件系统?
  • 什么是更可靠的替代方案?专门的文件系统?哪个?
  • 还有其他注意事项/建议吗?

最佳答案

这在很大程度上取决于文件系统。

ext2 和 ext3 的硬限制是每个目录 32,000 个文件。这比你问的要多一些,但足够接近,我不会冒险。此外,每次您按名称访问目录中的文件时,ext2 和 ext3 都会执行线性扫描。

ext4 应该可以解决这些问题,但我个人不能保证。

XFS 从一开始就是为这类事情设计的,即使您将数百万个文件放在目录中,它也能正常工作。

因此,如果您真的需要大量文件,我会使用 XFS 或 ext4。

请注意,如果您有大量文件(除非您使用“ls -f”),没有文件系统可以使“ls”运行得很快,因为“ls”将读取整个目录并对名称进行排序。几万可能不是什么大问题,但一个好的设计应该超出你第一眼认为你需要的规模......

对于您描述的应用程序,我可能会改为创建一个层次结构,因为对于查看它的人来说几乎不需要任何额外的编码或脑力劳动。具体来说,您可以将第一个文件命名为“00/00/01”而不是“000001”。

关于linux - 在同一个 Linux 目录中有数百或数千个文件是否可以(性能方面)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8735875/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com