我正在编写一个应用程序,需要存储多达约 1000 万个的大量文件。
它们目前以 UUID 命名,每个大小约为 4MB,但大小始终相同。从/向这些文件读取和写入始终是连续的。
我正在寻求答案的两个主要问题:
1)哪种文件系统最适合这个。 XFS 还是 ext4?
2)是否有必要将文件存储在子目录下以减少单个目录中的文件数量?
对于问题 2,我注意到人们试图发现可以在单个目录中存储的文件数量的 XFS 限制,但尚未发现超过数百万的限制。他们没有注意到任何性能问题。那么在ext4下呢?
谷歌搜索人们做类似的事情,有些人建议将索引节点号存储为文件的链接,而不是文件名以提高性能(这是在数据库索引中。我也在使用它)。但是,我没有看到可用于通过 inode 编号打开文件的可用 API。这似乎更多的是提高 ext3 下性能的建议,顺便说一句,我不打算使用它。
ext4 和 XFS 限制是什么?两者相比有何性能优势?在我的例子中,您能看出使用 ext4 而不是 XFS 的理由吗?
您绝对应该将文件存储在子目录中。
EXT4 和 XFS 都使用有效的文件名查找方法,但如果您需要在目录上运行工具,例如ls
or find
您会很高兴将文件分成可管理的 1,000 - 10,000 个文件块。
inode 号是为了提高 EXT 文件系统的顺序访问性能。元数据存储在 inode 中,如果您无序访问这些 inode,则元数据访问是随机的。通过按 inode 顺序读取文件,您也可以按顺序访问元数据。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)