하드웨어 015 캐시가 뭔가요?
1. 캐시와 캐싱
캐시는 용량이 작고 속도가 빠른 메모리로,
용량이 더 크지만 훨씬 느린 주 기억 장치에 매번 접근하는 것을 피하고자, 최근에 사용된 정보를 저장하는 데 사용됩니다.
주기억장치와 CPU 사이에 위치하고 자주 사용하는 데이터들을 기억합니다.
캐싱은 캐시 영역으로 데이터를 가져와서 접근하는 방식을 말합니다.
다른 의미로는 메모리 상에 있는 데이터를 연산하는데,
이 연산을 더 빠른 CPU메모리 영역으로 가져와서 처리를 수행하는 것도 캐싱한다고 표현합니다.
캐시은 어플리케이션 성능을 대폭 개선하고 비용을 크게 절감해 줍니다.
2. 캐싱의 작동법
캐시의 데이터는 일반적으로 RAM과 같이 빠르게 엑세스를 할 수 있는 하드웨어에 저장되며,
소프트웨어 구성 요소와 함께 사용될 수 있습니다.
캐시의 주요 목적은 더 느린 기본 스토리지 계층에 엑세스 해야 하는 필요을 줄임으로써 데이터 검색 성능을 높이는 것입니다.
속도를 위해 용량을 절충하는 캐시는 일반적으로 데이터의 하위 집합을 일시적으로 저장합니다.
보통 완전하고 영구적인 데이터가 있는 데이터베이스와는 대조적입니다.
3. 캐싱의 적용
캐시는 운영체제, 네트워킹 계층, 웹 어플리케이션 및 데이터베이스를 비롯한 다양한 기술 계층에 걸쳐 적용되고 활용될 수 있습니다.
캐싱을 사용하면 읽기 집약적인 여러 어플리케이션 워크로드의 지연 시간을 크게 줄이고 IOPS를 개선할 수 있습니다.
(IOPS는 HDD, SDD, SAN과 같은 컴퓨터 저장 장치를 벤치마크 하는데 사용되는 성능 측정 단위입니다.)
캐싱되는 정보로는 데이터베이스 쿼리 결과, 컴퓨팅 집약적인 계산, API 요청-응답 및 HTML, JavaScript 및 이미지 파일과 같은 웹 아티팩트가 있습니다.
4. 캐싱 모범 사례
5. 캐싱의 이점
- 애플리케이션 성능 개선
메모리는 디스크보보다 훨씬 속도가 빠르기 때문에 인 메모리 캐시에서 데이터를 읽는 속도가 매우 빠릅니다.
이렇게 훨씬 더 빠른 데이터 엑세스는 애플리케이션의 전반적인 성능을 개선합니다.
- 데이터베이스 비용 절감
단일 캐시 인스턴스는 수십만 IOPS를 제공할 수 있으며,
따라서 수많은 데이터베이스 인스턴스를 대체할 수 있으므로 총 비용이 절감됩니다.
- 백엔드의 로드 감소
캐싱은 읽기 로드의 상당 부분을 백엔드 데이터베이스에서 인 메모리 계층으로 리디렉션함으로써
데이터 베이스의 로드를 줄이고 로드 시에 성능이 저하되거나 작업 급증 시에 작동이 중단되지 않도록 보호할 수 있습니다.
(리디렉션은 방문자에게 초기에 요청한 URL인 아닌 다른 URL을 제공하는 행위입니다.)
- 예측 가능한 성능
데이터베이스에 대한 로드가 증가하면 데이터를 가져오는 데 있어 지연 시간이 길어지고 전반적인 애플리케잉션 성능이 예측 불가능해집니다. 높은 처리량의 인 메모리 캐시를 활용함으로써 이 문제를 완화할 수 있습니다.
- 읽기 처리량(IOPS) 증가