>

모든 dentry에 inode 객체에 대한 포인터가 있기 때문에 혼란스러워합니다. 내가 아는 한, 항상 덴 트리를 통해 inode를 찾습니다. 그렇다면 왜 inode 캐시가 있습니까?

  • 답변 # 1

    Linux VFS (Virtual File System)의 일부로 구현 된 inode 캐시에 대해 묻고 있습니다. 아이 노드 캐시를 포함한 캐시는 아이 노드 액세스와 같은 기능을 제공하는 데 사용되는 것이 아니라 지적한대로 다른 메커니즘이 있기 때문이다.

    캐시를 사용하면 성능을 향상시킬 수 있으며이 경우 디스크와 같은 io 장치에서 inode 데이터를 검색하는 속도가 매우 느리므로 이전에 액세스 한 inode 데이터를 메모리에 저장하면 파일 시스템 액세스가 훨씬 빨라집니다.

  • 답변 # 2

    디렉토리 항목과 inode는 서로 다른 객체이므로 별도의 캐시를 얻습니다. dcache.c 의 dentry 캐시 inode_hashtable 의 inode 캐시  와이즈 비즈 . 그러나 inode 캐시는 dcache의 슬레이브입니다 :

    와이즈 비즈

    확실히 알다시피, 이러한 캐시의 요점은 성능을 높이고 지속적인 디스크 액세스를 피하는 것입니다. 특히 파일이 열려있는 동안 여러 번 업데이트 할 수있는 inode의 경우입니다.

    inode.c

  • 이전 debian - Apache2 가상 호스트가 작동하지 않습니다
  • 다음 앞으로 스크롤에서 더 적은 명령이 멈춤