폴더 크기가 크면 IO 성능이 저하됩니까?

폴더 크기가 크면 IO 성능이 저하됩니까?

우리는 디렉토리에 수천 개의 파일을 쓰고 파일을 삭제한 다음 디렉토리를 삭제하지 않고 동일한 디렉토리에 수천 개의 파일을 더 쓰는 Linux 서버 프로세스를 가지고 있습니다. 제가 보기 시작한 것은 글쓰기 과정이 점점 더 느려지고 있다는 것입니다.

내 질문은 다음과 같습니다. ls -l의 출력에서 ​​볼 수 있듯이 폴더의 디렉터리 크기가 4096에서 200000 이상으로 늘어났습니다.

root@ad57rs0b# ls -l 15000PN5AIA3I6_B 총 232 drwxr-xr-x 2 Chef Chef 233472 5월 30일 21:35 바코드

ext3에서 이러한 큰 디렉토리 크기로 인해 성능이 저하될 수 있습니까?

감사해요.

아론

답변1

예, 큰 디렉터리 크기는 문제가 될 수 있습니다. 일반적으로 파일을 하위 디렉터리로 해싱하여 이를 방지하는 것이 가장 좋습니다. 이것이 옵션이 아닌 경우 대규모 디렉터리의 조회 성능을 크게 향상시킬 수 있는 ext3 기능이 있습니다.

tune2fs -O dir_index /dev/$DEVICE
e2fsck -D /dev/$DEVICE

이를 통해 디렉터리 인덱스 데이터의 B-트리 해시가 활성화되어 조회 시간이 크게 향상됩니다. 물론 설치 시 이미 이 기능이 활성화되어 있을 수도 있습니다. 이 명령을 실행하고 dir_index출력에서 ​​다음을 찾아 확인할 수 있습니다 .

tune2fs -l /dev/$DEVICE | grep 'features:'

편집하다:noatime또한 마운트 옵션으로 설정하는 것을 고려할 수도 있습니다 . 대규모 디렉토리에 대한 특정 조정은 아니지만 많은 파일 시스템 활동이 발생할 때마다 상당한 성능 향상을 제공할 수 있습니다.

관련 정보