캐시와 버퍼의 차이점

박병현·2022년 2월 12일
0

본 페이지는 버퍼와 캐시에 대한 개념이 혼동되서, 추가적으로 찾아 본 후 공부한 내용 정리를 위해 작성되었습니다.

✔ 작성 전 : 사전 지식

mariaDB를 사용중인데, buffer라는 개념이 자주 등장하였다.
막연히 캐시와 비슷한 개념으로 더 빠른 연산을 위한 개념이라고만 생각했다.

캐시의 경우 hit ratio라는 개념이 등장하며, 자주 사용하는 데이터는 다시 접근하는 경향이 있어, 해당 데이터들은 메인 메모리대신 캐시 메모리에 저장함으로써 속도를 증가시킨다고만 알고있었다. 즉, 데이터 임시 저장소 로 설명 가능하다.

캐시는 CPU 칩 안에 내장되어있으며, L1, L2, L3 캐시 등 존재한다.

✔ Redis

또한 캐시는 하드웨어가 아닌, Redis(Remote Data Store) 에 저장하여 서버를 활용한 웹, 애플리케이션 등에서도 사용 가능하다.

사용자가 요청할 결과를 미리 redis에 저장 후, 요청이 들어오면 redis에서 조회
하여 바로 즉시 반환시켜 서비스상 속도를 증가시켜 줄 수 있다는 장점이 있다.


본격적으로 캐시에 대해 알아보자.

1. 캐시(cache)

1.1 캐시(Cache)란?

처리속도 향상을 위해, 자주 사용하는 메모리들을 캐시 메모리에임시 저장한다.

CPU는 메모리를 참조할 때 항상 캐시메모리를 먼저 탐색하는데, 빠른 처리를 위해 캐시메모리에 임시적으로 저장된 메모리가 있는지? 를 확인하는 과정이다.

이 때, 캐시메모리에 존재 유무 여부를 모두 count하여, 캐시메모리의 최종 성능을 나타내는 hit-ratio 를 계산한다.

1.2 hit-ratio 란?

hit , miss 각각의 수를 count하여 Metric으로 활용할 hit-ratio를 계산

case1 : 찾고자 하는 메모리가 캐시메모리에 존재

  • 캐시메모리로부터 참조 (매우 빠름)
  • cache hit 가 증가한다.

case 2 : 찾고자 하는 메모리가 캐시메모리에 미존재

  • 주기억 장치에 접근
  • cache miss 가 증가한다.
용어설명
cache hitCPU가 참조하려는 메모리가 캐시에 존재하는 경우
cache missCPU가 참조하려는 메모리가 캐시에 존재 하지 않는 경우
cache hit ratio=캐시hits캐시hits+캐시miss= \frac{캐시hits}{캐시hits+캐시miss}

✔ 캐시 교체 알고리즘

사용하는 리소스의 양은 제한되어 있고, 캐시는 제한된 리소스 내에서 데이터를 빠르게 저장하고 접근할 수 있어야 한다.

이를 위해 주로 LRU(Least Recently Used) 알고리즘을 사용한다.

  • LRU 알고리즘 : 메모리 상에서 가장 최근에 사용된 적이 없는 캐시의 메모리부터 대체하며 새로운 데이터로 갱신시켜준다. (자세한 알고리즘 내용은 생략)

2. 버퍼(buffer)

2.1 버퍼란?

캐시와 동일하게 장치간 처리속도 향상 목적을 갖지만, 동작방식이 캐시와 조금 차이가 있다. 캐시와 비교를 하여 차이를 파악하겠습니다.

용어설명
캐시자주 사용하는 데이터나 값을 복사해 놓는 임시 저장소
버퍼데이터를 한 곳에서 다른 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 메모리 영역

2.2 유튜브 영상 버퍼링

사람들은 주로 유튜브 영상을 볼 때, 영상이 끊기면버퍼링 이 걸렸다는 말을 많이 사용한다. 그래서 버퍼링에 대해 찾아보니 다음과 같다고 한다.

버퍼링(Buffering) : 버퍼를 활용하는 방식 또는 버퍼를 채우는 동작

유튜브를 예시로 하여 버퍼에 대한 이해를 쉽게 할 수 있다.

유튜브 영상을 시청 시, 빨간색회색 바가 존재하는 것을 다들 보셨을것입니다. 여기서 회색부분 : 버퍼라고 말할 수 있습니다.

동영상을 내려받는 속도와 실제 시청하는 속도가 차이가 나기 때문에, 버퍼를 통해 미리 최대한 빠르게 동영상을 내려받습니다.

여기서 인터넷이 느려, 시청속도가 버퍼를 채우는 속도보다 빠른 경우 흔히 말하는 버퍼링이 걸렷다 : (버퍼를 채우고있다) 라는 경우가 발생하게 됩니다.

쉽게 말해, 버퍼(Buffer)는 속도 차이가 있는 장치 사이에서 데이터를 전송할 때 데이터의 손실을 방지하고 효율적으로 사용하기 위한 임시 저장공간이라고 할 수 있습니다.

더 간단히 말하자면 중간에 끊기지 않도록 미리 데이터를 받아오는 것을 버퍼라고도 표현할 수 있습니다.

3. 캐시와 버퍼 차이점 정리

용어차이점공통점
캐시처리속도를 최대한 올리기 위한 기술로 주로 빠른 속도의 장치를 보조속도에 차이가 있는 두 장치 사이에서 그 차이를 완화
버퍼처리속도가 떨어지는 걸 방지하는 기술속도에 차이가 있는 두 장치 사이에서 그 차이를 완화

참고링크

profile
AI Developer

0개의 댓글