DB IO 를 줄이는 방법 Cache 가 있는데 그전에 Cache 가 무엇인지 확인을 해보자 .
Cache란
Cache란 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다. 아래와 같은 저장공간 계층 구조에서 확인할 수 있듯이, 캐시는 저장 공간이 작고 비용이 비싼 대신 빠른 성능을 제공한다.
Cache는 아래와 같은 경우에 사용을 고려하면 좋다.
- 접근 시간에 비히 원래 데이터를 접근하는 시간이 오래 걸리는 경우(서버의 균일한 API 데이터)
- 반복적으로 동일한 결과를 돌려주는 경우(이미지나 썸네일 등)
Cache에 데이터를 미리 복사해 놓으면 계산이나 접근 시간 없이 더 빠른 속도로 데이터에 접근할 수 있다.
결국 Cache란 반복적으로 데이터를 불러오는 경우에, 지속적으로 DBMS 혹은 서버에 요청하는 것이 아니라 Memory에 데이터를 저장하였다가 불러다 쓰는 것을 의미한다. Enterprise급 Application에서는 DBMS의 부하를 줄이고, 성능을 높이기 위해 캐시(Cache)를 사용한다. 원하는 데이터가 캐시에 존재할 경우 해당 데이터를 반환하며, 이러한 상황을 Cache Hit라고 한다. 하지만 원하는 데이터가 캐시에 존재하지 않을 경우 DBMS 또는 서버에 요청을 해야하며 이를 Cache Miss라고 한다. 캐시는 저장공간이 작기 때문에, 지속적으로 Cache Miss가 발생하는 데이터의 경우 캐시 전략에 따라서 저장중인 데이터를 변경해야 한다.
캐시의 종류
1.메모리 캐시
-데이터를 메모리에 저장,웹서버, 데이터베이스 및 운영 체제를 포함 다양한 소프트웨어 응용 프로그램에서 널리 사용
-메모리 캐싱은 데이터 엑세스에 필요한 I/O 작업 수를 줄여 애플리케이션 성능을 향상시키는 효율적인 방법
2.브라우저 캐시
-대부분의 웹 브라우저에서 이미지, 스타일 시트 및 스크립트와 같이 자주 엑세스 하는 웹 콘텐트를 저장하는데 사용
-페이지 로드시간과 네트워크 정체를 줄여 더 나은 사용자 경험을 제공
3.웹 캐시
-웹사이트 성능을 향상시키이 위해 콘텐트 전송 네트워크(CDN)에서 광범위하게 사용된다. 클라언트에 더 가까운 서버에 웹 페이지 및 웹 콘텐츠를 캐싱함으로써 웹 페이지 로드시간을 줄이고, 웹 사이트 가용성을 향상시키는데 도움
4.분산 캐시
-클라우드 컴퓨팅 환경과 빅 데이터 애플리케이션에 사용된다. 여러 노드 또는 서버에 데이터를 저장함으로써 분산 캐시는 애플리케이션 확장성과 성능을 개선하는데 도움
5.애플리케이션 캐시
-응용 프로그램의 메모리 공간 내에서 자주 엑세스하는 데이터를 캐싱함으로써 응용프로그램 캐시는 데이터베이스 또는 기타 스토리지 시스템에서 데이터를 가저올 필요성을 주여 응용프로그램 성능을 향상시킨다.
캐싱의 이점
애플리케이션 성능개선
데이터베이스 비용절감
백엔드의 로드 감소
-> 인 메모리 시스템은 지연 시간을 줄여주고 높은 요청 속도를 제공한다.
https://mangkyu.tistory.com/69
https://ko.wikipedia.org/wiki/%EC%BA%90%EC%8B%9C
캐시 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 동적 CPU 메모리 캐시 그림 캐시(cache, 문화어: 캐쉬, 고속완충기, 고속완충기억기)는 컴퓨터 과학에서 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다.
ko.wikipedia.org
'sns' 카테고리의 다른 글
대규모 트래픽을 대응하는 과정(kafka) (0) | 2023.04.09 |
---|---|
주기적으로 Client에서 데이터를 가지고 와야하는 경우 (0) | 2023.04.09 |
대규모 트래픽에 대응하는 과정(Redis-1) (0) | 2023.04.09 |
대규모 트래픽일시 현 architecture의 문제점 분석 및 해결 (0) | 2023.04.09 |
Github Actions로 Heroku서버에 배포하기(CI/CD) (0) | 2023.04.06 |