• 메모리 캐시 vs 디스크 캐시 :: 마이구미
    HTTP 2017. 12. 23. 15:16
    반응형

    이 글은 메모리 캐시와 디스크 캐시에 대해 다룬다.(2018.01.07 수정)

    웹 개발 시 캐시에는 크게 2가지로 나눌 수 있다.

    클라이언트 측 또는 서버측을 활용한 캐시 사용이다.

    서버를 통한 캐시 활용은 예로 CDN 서버를 들 수 있고, 클라이언트는 브라우저 캐시이다.

    여기서는 브라우저 캐시를 다뤄본다.

    브라우저 캐시는 크게 메모리 캐시와 디스크 캐시로 나뉜다. (크롬 기준)

    참고 - http://d2.naver.com/helloworld/1059747


    개발자 도구를 통해 다음과 같은 모습을 볼 수 있다.



    Size 항목에서 from memory cachefrom disk cache 를 볼 수 있다.

    또한 Size 항목에 따른 Time 항목에서도 많이 차이가 난다는 것을 볼 수 있다.

    캐시를 통해 가져온다는 것은 알고 있지만, 2개로 나뉘는 것은 모르고 있는 경우가 많을 것이다.


    그림과 같이 보여지는 메모리 캐시와 디스크 캐시는 무엇인가?


    알아보기 전에 알아두어야할 것이 있다.

    우선 브라우저 측면이 아닌 하드웨어 측면에서 바라본 캐시 구조를 보자.

    이러한 흐름 또는 목적이 웹 환경에서도 반영된다는 것을 중심으로 이해하길 바란다.


    디스크 캐시는 하드디스크에 접근하는 시간을 개선하기 위해 RAM에 저장하는 기법이다.

    하드디스크에 접근하는 것보다 RAM 에 접근하는 것이 더 빠르기 때문이다.


    캐시 메모리는 램에 접근하지 않고 더 빠른 시간으로 접근할 수 있는 CPU 칩 안에 있는 작지만 빠른 메모리이다. (L1, L2, L3)


    아래 그림을 통해 보면 이해가 빠를 것이다.

    캐시를 가져오는 것이 2가지로 나뉘는 이유는 단순히 성능 측면이다.

    더 빨리 데이터를 가져오기 위함이다.


    캐시 속도 비교


    그림과 같이 HDD 까지 접근하는 것보다 L1, L2, L3 같은 캐시 메모리에 접근하는 것이 훨씬 빠르다.

    하지만 용량이 L1 ~ L3 는 8KB ~ 8MB 으로 작은 용량을 가지고 있기에 모든 것을 캐시 메모리로부터 가져올 수는 없다.


    이제는 브라우저 측면에서 보자.

    용어 측면에서 용어는 같지만, 다른 의미로 해석되어 혼란이 올 수 있다. 

    의미는 다르지만, 흐름과 목적은 같기에 그것을 중심으로 읽기를 바란다.


    일반적으로 캐시 데이터는 하드디스크(HDD) 에 저장된다.

    저장되는 경로는 하나의 폴더(User data) 안에 저장되며, 형태는 다음과 같다.


    cache data   디스크 캐시 구조


    위 파일들은 디스크 캐시의 구조라고 볼 수 있다.

    위와 같은 구조를 통해 재사용 및 I/O 최소화 등 많은 이점이 있지만, 결국 파일 I/O 시간으로 인해, 처리가 빠르지않다.

    그래서 더 빠른 처리를 위해 I/O 가 없이 웹코어 내부로 바로 접근할 수 있는 메모리 캐시를 이용할 수 있다.


    이것을 하드웨어 측면에서 굳이 말하자면 다음과 같다.

    from disk cache 는 램(RAM) 으로부터 가져온다. 

    from memory cache 는 더 빨리 가져오기 위해 L1, L2, L3 와 같은 캐시 메모리로부터 가져온다.


    결국 단순히 더 빠른 속도를 내기 위해서다.
    그로인해, Time 항목을 보면 메모리 캐시로부터 가져온 데이터들은 시간이 0 인 것을 알 수 있듯이 빠르다는 것을 느낄 수 있다.


    2개의 전체적인 캐시에 대한 구조는 다음과 같이 표현할 수 있다.


    memory cache vs disk cache


    그렇다면 본인은 브라우저는 어떠한 기준으로 캐시를 나누는 것인지 알고 싶었다.

    대부분 사이트에서 data url 과 같은 파일 또는 로컬 파일들은 메모리 캐시로부터 가져오는 것을 볼 수 있다.

    하지만 우선 순위는 높겠지만 이것도 추측일 뿐, 어떤 기준으로 나뉘는 것은 본인으로써는 정확히 알 수 없고, 브라우저마다 다를 것이다.

    위와 관련된 내용은 data-url 과 image file 의 차이를 파악한다면, 이해하는 데 도움이 될 것이다.

    비교하는 글을 이어서 확인해보자.

    data-URL vs image file

    반응형

    댓글

Designed by Tistory.