처음 실행 find
하거나 ls
디렉토리에서 실행하면 작동하는데 시간이 좀 걸리는 것 같습니다. 그러나 그 이후에는 항상 디렉터리 내용 목록이 어딘가에 캐시되거나 색인화된 것처럼 빠릅니다.
컴퓨터를 다시 시작해도 이 캐시를 보존할 수 있는 방법이 있습니까?
답변1
답변2
"재부팅 후에도 유지"가 의심스럽습니다. 그러나 시작 시 캐시를 쉽게 재구축할 수 있습니다. 이 방법은 약간의 지연만으로 거의 동일한 작업을 수행합니다.
파일을 만들고 /etc/cron.d/rebuild-fs-cache
다음 내용을 넣으세요.
@reboot root /usr/bin/nice -n 19 /usr/bin/ionice -c 3 -t /usr/bin/find / >/dev/null 2>&1
이는 프로세스의 우선순위를 가능한 최고 수준으로 낮추기 위해 nice
및 ionice
(기본적으로 설치되어야 하며 패키지 관리자를 통해 확실히 사용할 수 있습니다. 데비안은 이를 coreutils
및 에 별도로 넣습니다)를 사용합니다 . 즉, It의 다른 항목을 방해해서는 안 됩니다. 시스템에서 실행되지만 완료하는 데 시간이 조금 더 걸립니다. 커널이 파일 시스템 데이터를 디스크에서 메모리로 로드하도록 강제하는 모든 과정을 자체적으로 수행합니다 .util-linux
find
find
stat()
캐시가 일단 구축되면 운영체제가 다른 목적으로 메모리를 필요로 하기 때문에 캐시가 지워지지 않는 한 유지되어야 합니다. 나는 그것을 한동안 사용해왔고 디렉토리 목록은 큰 디렉토리에서도 잘 작동합니다.상당히정확한 숫자를 인용할 수는 없지만 위의 크론 작업을 사용하지 않는 것보다 빠릅니다.