FFS 优化与目录哈希

主要观点:在 OpenBSD 文件系统子系统中,用户可通过调整sysctl vfs.ffs.dirhash_maxmem来增加目录哈希缓存的最大值,以优化文件查找。
关键信息:

  • OpenBSD 文件系统子系统可分为 VFS、UFS 和 FFS 三部分,UFS 活动聚焦于 inode,FFS 实现文件存储优化。
  • dirhash为大目录创建内存哈希表,将文件查找从慢线性搜索变为快常量时间搜索。
  • ufsdirhash_init代码中初始缓存为 5MB,可通过sysctl(8)调整,如sysctl vfs.ffs.dirhash_maxmem=52428800
  • 可通过doas find / >/dev/null让系统查找所有文件来缓存查找,可根据系统内存等情况调整dirhash_maxmem的值及缓存预热方式。
    重要细节:
  • 作者在服务器和桌面系统上观察到dirhash_maxmem的值,在桌面系统上将其增加到 50MB,该系统有很多大的 cvs/git 仓库和大量文件。
  • 执行find /后,dirhash_mem的值为 28483627(约 27MB),可将此值作为最大值并加 10%缓冲,或保持 50MB 不变,因系统有 32GB 内存。
阅读 13
0 条评论