我们在 Linux 上有一个安全软件,它可以扫描服务器目录中存在的文件中的漏洞(例如网站是否上传了黑客脚本)。默认情况下,每个目录的资源限制为 10,000 个,否则它不会扫描该目录中的文件,但如果需要,它允许将其设置为无限制。
我正在考虑增加限制,但想知道 Linux 和目录中是否有大量文件会导致某种非线性减速或其他限制原因。就像扫描一个包含 50,000 个文件的目录会比扫描每个包含 100 个文件的 500 个目录花费指数级的时间,还是其他原因?
编辑:这里有一些针对评论的基准
### directory with 50,000 test files ###
# time for file in *; do echo test > $file; done
real 0m3.432s
user 0m1.128s
sys 0m2.303s
# time for file in *; do a=$(head -1 $file); done
real 1m1.338s
user 0m5.878s
sys 0m22.885s
### directory with 500 test files ###
# time for i in {1..100}; do ( for file in *; do echo test > $file; done ) ; done
real 0m4.150s
user 0m1.309s
sys 0m2.801s
# time for i in {1..100}; do ( for file in *; do a=$(head -1 $file); done ) ; done
real 0m58.278s
user 0m3.558s
sys 0m18.554s