파일 시스템 메타 데이터 캐싱에 대부분의 RAM을 사용하도록 시스템을 설정하고 싶지만 읽기 / 쓰기 캐싱 및 프리 페치 파일에는 상당히 적은 양만 있습니다. 이상적으로는 실제로 파일을 열 때까지 디스크를 회전시키지 않고 파일 시스템 (RAM에 맞는만큼)을 탐색 할 수 있기를 원합니다.
세부 사항은 다음과 같습니다.
집에서 만든 파일 서버가 있습니다. 약 9TB의 LVM 볼륨에 5 개의 디스크가 있지만 4GB의 RAM 만 있습니다. 서버는 파일을 제공하는 다른 많은 작업을 수행하지 않기 때문에 대부분의 RAM이 캐싱에 사용됩니다. (“free”는 캐시에 사용 된 3.9G 중 3.4G를보고합니다.)
서버는 내 침실에 있으며 모든 디스크가 돌아 가면 조용 할 때 성 가실 정도로 충분한 소음을 발생시킵니다. (저는 소음을 찾는 것이 아니라 회전하는 소음을 의미하지 않습니다. 디스크는 다양한 제조사와 모델로 구성되어 있으며 회전 속도의 약간의 차이로 인해 간섭이 발생한다고 생각합니다. 헤르츠 미만의 기간에는 약간의 소음이 발생합니다.) 따라서 디스크를 대부분 스핀 다운하도록 서버를 구성했습니다.
물론 파일 관리자에서 폴더를 열 때 디스크가 분리되면 해당 폴더가 회전하는 디스크가있는 동안 지연이 발생합니다. 그다지 큰 문제는 아닙니다. 그러나 내가 보는 위치에 따라 LVM이 다른 디스크의 각 하위 폴더에 대한 메타 데이터를 확산시키는 경우 연속으로 여러 번 발생할 수 있습니다.
나는 리눅스가 대부분 캐시를 파일 내용으로 채우고 아마도 프리 페치 된 데이터를 채운 것으로 생각합니다. 캐싱은 원활한 재생을 위해 몇 MB 이상으로 유용하지 않습니다. 방금 영화를 본다면 곧 다시는 못 볼 것입니다. 프리 페치 (prefetching)가 발생 하면 몇 MB 이상이 지나도 제 경우에는 완전히 쓸모가 없습니다 .
그러나 4GB는 대부분 이미 방문한 부분 인 대부분의 파일 시스템 메타 데이터를 캐시 할 수있을 정도로 충분해야한다고 생각합니다. 자고
파일을 열 때 여전히 지연이 발생하지만 괜찮습니다. “클릭; 대기 ; 딸깍 하는 소리; 대기 ; 딸깍 하는 소리; 대기 ; 플레이; "클릭"으로 시청; 딸깍 하는 소리; 딸깍 하는 소리; 플레이; 대기 ; 손목 시계". 전자는 놀라 울 정도로 실망 스럽다. 후자는 거의 예상됩니다.
노트:
중요한 경우 커널은 3.2이고 OS는 데비안이고 볼륨은 lvm2이며 FS는 ext4입니다.
스핀 다운의 유일한 이유는 밤 동안 소음입니다. 그렇지 않으면 서버가 계속 실행 중입니다. (저는 합리적인 저전력으로 만들었습니다.) 스핀 다운 지연은 시간에 따라 다릅니다.
하드 디스크는 미디어 전용입니다. OS가 별도 (소형) 플래시 드라이브에 있습니다. (스핀 업 지연은 데이터가
/usr
무엇이든 필요한 것이 아니라 데이터에서 발생한다는 것을 의미합니다 . 어떻게 든 문제에 도움이된다면 몇 GB를 절약 할 수 있습니다.성능에 대한 합리적인 영향은 큰 문제가 아닙니다. 어쨌든 디스크가 네트워크보다 빠릅니다.