我们有一个
Linux服务器进程,它将几千个文件写入目录,删除文件,然后将几千个文件写入同一目录而不删除目录.我开始看到的是,写作的过程变得越来越慢.
我的问题是:文件夹的目录大小从4096增加到超过200000,如ls -l的输出所示.
root @ ad57rs0b#ls -l 15000PN5AIA3I6_B
总计232
drwxr-xr-x 2主厨233472 5月30日21:35条形码
在ext3上,这些大目录大小会降低性能吗?
谢谢.
亚伦
解决方法
是的,大目录大小可能是个问题.通常最好通过将文件散列到子目录中来避免它们.如果这不是一个选项,那么有一个ext3功能可以显着提高大型目录中的查找性能:
tune2fs -O dir_index /dev/$DEVICE e2fsck -D /dev/$DEVICE
这样可以实现目录索引数据的b-tree哈希,从而显着缩短查找时间.当然,您的安装可能已启用此功能.您可以通过运行此命令并在输出中查找dir_index来检查:
tune2fs -l /dev/$DEVICE | grep 'features:'
编辑:此外,您可能需要考虑将noatime设置为挂载选项.它不是针对大型目录的特定调整,但是在发生大量文件系统活动时可以提供相当大的性能改进.