심볼릭 링크를 사용하여 디렉터리를 다른 파일 시스템에 재배치할 때 오버헤드 발생

심볼릭 링크를 사용하여 디렉터리를 다른 파일 시스템에 재배치할 때 오버헤드 발생

자주 액세스하는 일부 파일을 다른 파일 시스템으로 재배치해야 합니다. 가장 쉬운 방법은 파일이 포함된 디렉터리를 새 파일 시스템으로 이동하고 이전 위치에서 심볼릭 링크를 만드는 것입니다.

즉. /var/yaydata로 이사 /mnt/data2/yaydata했고ln -s /mnt/data2/yaydata /var/yaydata

제가 알고 싶은 것은 yaydata의 파일을 자주 열고 닫는다면 성능에 눈에 띄는 영향이 있을까요?

답변1

아니 정말.

디버깅을 통해 작업을 추적하여 이를 테스트할 수 있습니다. Linux를 사용한다고 가정하면 strace.

 mkdir test1
 ln -s test1 test2
 strace -o strace1.log ls -l test1
 strace -o strace2.log ls -l test2

그런 다음 두 로그를 비교하십시오.

본질적으로 동일한 순서로 작동한다는 것을 알 수 있습니다. 그들은 이것을 lstat심볼릭 링크를 따르는 버전 이라고 부릅니다 stat.

-T플래그를 추가하여 속도 차이를 테스트할 수 있습니다 strace. 심볼릭 링크가 있으면 lstat0.000035초가 걸리고, 심볼릭 링크가 없으면 0.000031초가 걸립니다.

이와 같은 파일 메타데이터도 매우 효율적으로 캐시할 수 있습니다. 대부분의 캐시는 자주 액세스되고 크기가 작기 때문에 메타데이터를 상당히 높은 우선순위로 간주합니다.

짧은 대답 - 아니요. 상당한 오버헤드가 발생할 가능성은 없습니다.

관련 정보