我们有一个 Linux 服务器进程,它将几千个文件写入一个目录,删除这些文件,然后在不删除目录的情况下将另外几千个文件写入同一目录。我开始看到的是,写作的过程越来越慢。
我的问题是:从 ls -l 的输出可以看出,文件夹的目录大小已从 4096 增长到超过 200000。
root@ad57rs0b# ls -l 15000PN5AIA3I6_B total 232 drwxr-xr-x 2 Chef 厨师 233472 May 30 21:35 条码
在 ext3 上,这些大目录大小会降低性能吗?
谢谢。
亚伦
是的,大目录大小可能是一个问题。通常最好通过将文件散列到子目录中来避免它们。如果这不是一个选项,那么 ext3 功能可以显着提高大型目录中的查找性能:
tune2fs -O dir_index /dev/$DEVICE
e2fsck -D /dev/$DEVICE
Run Code Online (Sandbox Code Playgroud)
这启用了目录索引数据的 b 树哈希,从而显着缩短了查找时间。当然,您的安装可能已经启用了此功能。您可以通过运行此命令并dir_index在输出中查找来检查:
tune2fs -l /dev/$DEVICE | grep 'features:'
Run Code Online (Sandbox Code Playgroud)
编辑:
此外,您可能需要考虑设置noatime为安装选项。这不是对大型目录的特定调整,但可以在发生大量文件系统活动时提供可观的性能改进。
| 归档时间: |
|
| 查看次数: |
5147 次 |
| 最近记录: |