캐시(cache)
1. 캐시란?
- 사용 빈도가 높은 데이터를 고속으로 엑세스 할 수 있는 위치에 두는 것을 의미
- 일부 테이터를 테이터 출력 위치와 가까운 지점에 일시적으로 저장
- 데이터를 재사용을 전제로 한다
- CPU의 1/2차 캐시, 저장소 캐시, OS 페이지 캐시, 데이터 베이스 버퍼캐시
2. 사용되는곳
1) 브라우저 캐시
- 웹 브라우저가 접속한 페이지를 캐시한다
- 웹 서버 접속을 줄이고 브라우저 표시를 고속화
a. 캐시 데이터 위치
- 윈도우 7: C:\Users\[사용자명]\AppData\Local\Microsoft\Windows\Temporary Internet Files
- 윈도우 10: C:\Users\[사용자명]\AppData\Local\Microsoft\Windows\Caches
2) 캐시 서버
- 웹 서버와 네트워크 출입구 부하 경감
- 웹 서버와 클라이언트 사이에 캐시 서버를 배치
1. 클라이언트는 평상시와 같이 웹 서버에 접속하기 위해 DNS에 질의
2. DNS 서버는 웹서버가 아닌 캐시 서버 한대의 IP 주소를 반환
3. 캐시 서버에 콘텐츠가 있으면 캐시 서버에서 콘텐츠를 반환
4. 캐시서버에 콘텐츠가 없으면 웹 서버에서 취득
* CDN(Content Delivery Network)
- 요즘 캐시서버 보단 웹 서버나 다른 네트워크에 웹 콘텐츠 캐시를 배치하는 구조 이용
3. 주의 사항
- 데이터가 실제 데이터와 캐시라는 이중 구조로 저장, 리소스 소비가 늘어난다
- 시스템 가동 직후는 캐시가 없기 때문에 원하는 성능이 안나온다
- 시스템 성능, 데이터 불일치 발생
- 갱신 데이터를 캐시할 때 캐시가 여러개 있으면 갱신된 최신 데이터를 서로 뻇으려는 상태 발생
'IT_Infra > Architecture' 카테고리의 다른 글
[IT_Infra] 폴링(polling) (0) | 2016.11.13 |
---|---|
[IT_Infra] 끼어들기/인터럽트(interrupt) (0) | 2016.11.13 |
[IT_Infra] 탐색알고리즘(Searching) - 트리(Tree)(인덱스), 해시(Hash) (0) | 2016.11.08 |
[IT_Infra] HashTable - Array, LinkedList (0) | 2016.11.07 |
[IT_Infra] 가변길이(variable-length)/고정길이(fixed-length) (0) | 2016.11.07 |