우리는 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