FFS Optimizations with Dirhash
a year ago
- #OpenBSD
- #Filesystem
- #Optimization
- OpenBSD的文件系统子系统分为VFS(虚拟文件系统)、UFS(Unix文件系统)和FFS(快速文件系统)
- VFS为文件系统提供统一接口,UFS以类Unix方式组织文件,FFS则通过OpenBSD专属优化处理磁盘存储
- OpenBSD的文件系统优化有限,自g2k23版本起不再支持softdep功能
- dirhash是用于大型目录的内存哈希表,将文件查找性能从O(n)提升至O(1)
- 默认dirhash缓存大小为5MB,可通过sysctl(vfs.ffs.dirhash_maxmem)调整
- 增加dirhash_maxmem可优化性能,特别适用于具有大量文件或大型目录的系统
- 实用方案是:先设置较高值(如50MB),通过执行'find /'命令填充缓存,再根据实际使用情况调整
- 内存充裕的系统可配置更大的dirhash缓存,且不会产生显著开销