Linux 파일 시스템의 다양한 유형의 캐시 목록은 무엇입니까?

Linux 파일 시스템의 다양한 유형의 캐시 목록은 무엇입니까?

나는 이 페이지를 읽고 있었는데,http://www.tldp.org/LDP/tlk/fs/filesystem.html, 그리고 여기에 언급된 다양한 캐시를 모두 정리하는 데 어려움을 겪고 있습니다. 특히 각각을 사용할 때의 다양한 시나리오를 이해하지 못합니다.

내 이해로는 다음과 같습니다.

  1. 버퍼 캐시: VFS에서 사용됩니다. 데이터 버퍼가 캐시에 위치함을 나타냅니다. 버퍼 캐시에 데이터 버퍼만 있는지는 모르겠습니다. 또한 VFS에서만 사용되는지 확실하지 않습니다.

  2. VFS inode 캐시: 파일에 액세스한 후 더 빠른 조회를 위해 해당 inode가 캐시에 배치됩니다. inode 정보가 있다는 것이 시스템이 해당 위치에 도달하기 위해 더 이상 파일 시스템 트리를 따라 내려갈 필요가 없다는 것을 의미하는지 확실하지 않습니다. 예를 들어, 파일이 문서 아래에 있는 경우 더 이상 다음에서 문서에 액세스할 필요가 없습니다. 뿌리).

  3. EXT2(또는 inode를 사용하는 다른 파일 시스템) inode 캐시: 존재합니까? 언급된 적은 없지만 존재한다고 가정합니다.

  4. VFS 디렉토리 캐시: "디렉터리 이름과 inode"의 매핑을 저장합니다. 링크의 다음 인용문에 명시된 대로 VFS 캐시만 사용하여 VFS inode를 얻을 수 있습니다.

    디렉토리 캐시에 항목이 없으면 실제 파일 시스템은 기본 파일 시스템 또는 inode 캐시에서 VFS inode를 얻습니다.

    그렇다면 디렉토리 캐싱이 여전히 필요한 이유는 무엇입니까? 이것은 Dentry 캐싱과 관련이 있습니까?

  5. Dentry Caching: 위의 기사에서는 왜 이에 대해 언급하지 않습니까? 상관없나요?

답변1

그렇다면 디렉토리 캐싱이 여전히 필요한 이유는 무엇입니까?

이것은 캐싱의 또 다른 수준입니다. 모든 경로 구성 요소를 다른 캐시에서 찾을 수 있더라도 이를 모두 살펴보는 데는 여전히 시간이 걸립니다. 따라서 디렉터리 캐싱은 전체 경로를 캐시하는 방법을 제공하므로 매번 루트 디렉터리의 경로 요소별로 콘텐츠 경로 요소를 조회할 필요가 없습니다.

관련 정보