linux - ext4 为目录条目启用哈希
问题描述
根据kernel.org的说法,可以在树中而不是列表中存储树状结构,但您需要在 inode 结构中启用此标志 (EXT4_INDEX_FL)。我默认启用了这个,还是我必须用一些标志格式化我的分区?
我需要存储许多大约 130k 的小文件(相同的旧问题),我知道这将有助于加快查找速度,并且建议将这些文件存储在 2 级目录层次结构中。如果要存储接近 60.000.000 个此类文件的内容,我是否还需要考虑其他一些事情,以免发生这种情况?(可能是块大小的其他值,组中的块数)
解决方案
e2fsprogs 套件将此选项称为dir_index
. tune2fs -l DEVICE
它默认启用,您可以通过以 root 身份运行来验证它是否在文件系统上启用。
确实建议您手动对文件进行分片,这样您就不会在同一目录中拥有大量文件。虽然使用 B-trees 使得操作 O(log n) 而不是 O(n),但对于大量文件,操作仍然可能很昂贵。
如果您知道要创建大量文件,可以使用-i
选项将 inode 比率设置为 4096;这将创建更多的 inode,以便您可以保存更多文件。您还可以在 中查看大量情况的常用设置/etc/mke2fs.conf
。
推荐阅读
- d3.js - 为什么 phantomjs page.render 不捕获我的 D3 svg?
- r - 如何通过列表中的数据框名称联合大量数据框
- python - BeautifulSoup - 在这个 HTML 中查找链接
- java - 在移动到另一个片段并返回到它的同时保存片段内的 textView 值的正确方法是什么?
- gradle - 如何在 Gradle Kotlin DSL 中应用和配置 Kotlin No Arg 编译器插件?
- java - 对多对一关系的 API 请求
- python - 用于匹配大写字母和数字的正则表达式
- javascript - 如何在多个 HTML 页面中使用相同的 firebase 数据库?
- redirect - 无法重定向到在不同端口上运行的另一个网站
- java - http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-api/src/main/resources/change-set-1.0.0.xsd 返回 301