ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 11. Cache&Block
    CS/OS 2022. 8. 8. 15:37

    서론

    Kafka는 모든 Message(data)를 Disk에 Write하여 저장한다.

    Kafka에서 Producer가 Broker에 Message를 넘겨주고, Broker가 Disk에 저장하기 위해서 아래와 같이 동작.

    Disk Flush 시에 Disk에 직접 접근하는 것이 아닌 Page cache memory를 사용하여 속도 향상을 일으켰다.

    결국 Memory mapped file과 같은 개념과 유사하게 Memory 내에 일부인 캐시 메모리에다가 Data를 저장해두고 저장하는 것으로 보인다.

    Cache


    Hardware,Software의 Component로 요청한 결과를 미리 저장해두었다가 빠르게 사용하는 것이다.
    • I/O 과정을 거치지 않고 Cache Memory에 저장한 값을 이용하여 접근한다.
    • 비싸기 때문에 특정 Data만 올려두고 사용한다.

     

    실제 Linux free command를 활용하여 확인하여 보자.

    Cached된 Memory가 78516으로 나타낸 것을 볼 수 있다.

    $ free -k

    Cat 명령어 이후에 File에 대한 정보를 얻었고, 이는 Cache Memory에 반영된다.

    temp.txt는 24 크기임으로, Cached된 Memory가 78540으로 나타낸 것을 볼 수 있다.

    $ free -k
    $ cat temp.txt

    1. Page Cache

    파일의 Data를 저장하고 있는 Cache
    • File I/O의 향상을 위해 Memory 영역 중 일부를 Page cache로 구성
    • 한 번 읽은 File의 내용(Data)를 Page Cache 에 저장하여 이후에 동일 Data에 접근 시 Disk에서 읽는 것이 아닌 Memory에서 읽어 속도 향상
    • Linux version에 따라 Page Cache+Buffer Cache로 구성(2.4 이하)

     

    2. Buffer Cache

    File System의 Meta data와 관련된 Block을 저장하고 있는 Cache
    • Block Device의 Block에 대한 Cache이다.
    • 대부분의 Block은 Data를 저장하고 있기 때문에 File의 내용이 Buffer Cache와 Page Cache에 이중으로 쌓이는 경우가 발생한다.
    • 이 때문에 Linux 2.5 version 이후 부터는 Page cache 내부에 Buffer Cache가 존재한다.

     

     

    Block


    기억 공간을 나누는 단위, File System에서 기본적인 최소 할당 크기
    파일은 연속된 블록의 집합이다. 고로 한 파일의 i-node에는 연속된 블록들에 대한 포인터(주소) 값을 가지고 있다.

    1. BootBlock

    부트스트랩 코드가 저장되는 블록으로 보통 파일 시스템 시작부

    Xv6 시 Bootting 관련 설명을 하였음으로 생략

     

    2. SuperBlock

     전체 파일 시스템에 대한 정보 저장 ( 총 블록 수, 사용 가능한 inode 갯수 등등 )

     

    3. I-list

    inode의 집합이며 inode는 파일에 대한 모든 정보를 가지고 있음

     

    4. Data Block

    파일의 내용(데이터)을 저장하기 위한 블록

    'CS > OS' 카테고리의 다른 글

    10 . File System  (0) 2022.08.08
    9. Virtual Memory advantages and paging algorithm  (0) 2022.06.23
    8. Vitrual Memory  (0) 2022.06.23
    xv6 Test code  (0) 2022.06.02
    xv6 (linux Init)  (0) 2022.06.02

    댓글

Designed by Tistory.