Web-Caching 8조 20041640 이은식 20062510 이윤섭 20062529 임호용 20081709 장종혁 20041640 이은식 20062510 이윤섭 20062529 임호용 20081709 장종혁 1 / 22
: Celeron 왜 느린가? Caching Capacity Speed 2 / 22 CPU(Register) Cache RAM H.D.D Capacity Speed : Celeron 왜 느린가? 2 / 22
Double Buffering Bitmap on H.D.D Main Memory Monitor 더블 버퍼링적용(X) 3 / 22
VS Caching VS Buffering Caching Buffering CPU CPU Main Memory H.D.D 4 / 22
What is ‘Cache’? 캐시는 고속의 중앙 처리 장치(CPU)와 CPU에 비해 속도가 느린 주기억 장치 사이에 데이터와 명령어들을 일시적으로 저장하는 기억 장소를 제공하여, CPU가 주기억 장치로부터 읽고 주 기억 장치에 기록할 때보다 몇 배 빠른 속도 또는 CPU에 가까운 속도로 접근할 수 있게 한다. 5 / 22
Why ‘Web-caching’? 웹이 성장함에 따라, 사용 빈도가 높은 웹 서비스들을 엑세스 하는 클라이언트들의 수는 점점 늘어나고 있다. 네트윅의 하부 구조는 성장이 느린 반면, 네트윅의 트레픽은 상당히 높은 지수로 성장을 계속하고 있다. 따라서 현존하는 네트윅은 증가하는 클라이언트 요청에 의해 거의 포화 상태에 이르게 되었다. 그런 이유로 좀더 효율적으로 네트윅의 트레픽을 줄여 보기 위해 생겼다. 6 / 22
Web Caching 의 계층 Web Caching 의 구성형태 7 / 22
계층적 Web-Caching First-Level Web Caching * 단일 Web Caching Upper-Level Web-caching 8 / 22
First-Level Web Caching Client Web Server Web Cache Server Client 9 /22
First-Level Web Caching 문서가 웹 캐시 서버에 있는 경우 웹 캐시 서버에서 바로 가져옴 문서가 웹 캐시 서버에 없는 경우 웹 서버에서 직접 문서를 가져 오게됨 10 / 22
First-Level Web Caching Web Cache Server에 기간이 지난 문서를 가지고 있는 경우 해결책 : Adaptive TTL(time-to-live) 사용 11 / 22
What is ‘Adaptive TTL(time-to-live)’ ? 캐시 내에 이미 존재하는 객체에 대한 요청이 있을 때, 해당 객체에 대한 최종 변경 시각과 최종 확인 시각을 고려해서 변경되었을 가능성이 높다고 판단되는 경우에만 근원지 서버에 변경 여부를 확인하는 방법이다. 변경 가능성은 LMF(Last Modified Factor)에 의해 판단하여 LMF가 임계값 이상인 경우에만 변경 가능성이 높다고 보아 근원지 서버에 변경 여부를 확인한다. 12 / 22
First-Level Web Caching 웹 캐시 서버에 사용자가 원하는 문서가 없을 경우 브라우저가 직접 웹 서버에 찾는 과정에서 웹 서버 부하 및 네트윅 트레픽이 증가한다. 해결점 다중 Web Caching 을 이용한다. 13 / 22
First-Level Web Caching Web Server Web Cache Server B Web Cache Server A Web Cache Server C 웹 캐시 서버 A,B,C는 각각 이웃하는 캐시 서버들이다. Client A가 웹 서버에 문서를 요청하기 전에 먼저 캐시 서버 B에 찾고자 하는 문서가 있는지 체크한다. 만약 문서가 없다면, 캐시 서버 B는 Client A가 요청한 문서가 캐시서버 A 또는 캐시서버 C에 있는지 의뢰한다. 문서가 존재하지 않으면 캐시서버 B는 Client A에게 직접 왭 서버에서 문서를 찾도록 한다.(11페이지) 문서가 캐시서버 A나 C에 존재하면 A나 C는 서버 B에게 그 문서를 보낸다. 그리고 캐시서버 B는 Client A에게 캐시 서버 A나 C에서 받은 문서를 Client A에게 보낸다.(12페이지) ---------------------------------------------- 웹캐시서버는 같은 서브넷 에 있는 클라이언트들에 의해 사용된다. 같은 그룹내 의 클라이언트들은 같은 문서를 액세스할 가능성이 많고, 각 클라이언트는 짧은 주기에 다시 브라우저 하 는 경향이 있으므로, 클라이언트에 의해 요청된 문서 가 웹캐시에 저장되어 있으면 네트워크 대역폭 이 절약될 뿐 만 아니라 액세스 지연도 줄어든다. (간단히 말하면 클라이언트가 찾고자 하는 내용이 다른 웹 케시 서버에 있을 경우 클라이언트가 웹 서버에 직접적으로 엑세스 할 경우가 줄어든다.) Client A Client B 14 / 22
First-Level Web Caching Web Server 문서A Web Cache Server A Web Cache Server B Web Cache Server C 웹 캐시 서버 A,B,C는 각각 이웃하는 캐시 서버들이다. Client A가 웹 서버에 문서를 요청하기 전에 먼저 캐시 서버 B에 찾고자 하는 문서가 있는지 체크한다. 만약 문서가 없다면, 캐시 서버 B는 Client A가 요청한 문서가 캐시서버 A 또는 캐시서버 C에 있는지 의뢰한다. 문서가 존재하지 않으면 캐시서버 B는 Client A에게 직접 왭 서버에서 문서를 찾도록 한다.(11페이지) 문서가 캐시서버 A나 C에 존재하면 A나 C는 서버 B에게 그 문서를 보낸다. 그리고 캐시서버 B는 Client A에게 캐시 서버 A나 C에서 받은 문서를 Client A에게 보낸다.(12페이지) ---------------------------------------------- 웹캐시서버는 같은 서브넷 에 있는 클라이언트들에 의해 사용된다. 같은 그룹내 의 클라이언트들은 같은 문서를 액세스할 가능성이 많고, 각 클라이언트는 짧은 주기에 다시 브라우저 하 는 경향이 있으므로, 클라이언트에 의해 요청된 문서 가 웹캐시에 저장되어 있으면 네트워크 대역폭 이 절약될 뿐 만 아니라 액세스 지연도 줄어든다. (간단히 말하면 클라이언트가 찾고자 하는 내용이 다른 웹 케시 서버에 있을 경우 클라이언트가 웹 서버에 직접적으로 엑세스 할 경우가 줄어든다.) Client A Client B 15 / 22
Upper-Level Web-caching International Cache Server National Cache Server Upper-Level Web-caching의 계층적 캐시 4.1.3 계층적 캐싱 구조 캐시가 협동하는 한가지 방법은 캐싱 계층구조를 구축하는 것이다. 계층구조 캐싱에서, 캐시들이 네트 워크의 여러 단계에 위치된다. 단순성을 고려하여 캐 시들의 4계층: 하부(bottom), 조직(institutional), 지역 (regional) 그리고 국가(national) 단계가 있다고 가정한 다. 계층구조의 하부 단계에 클라이언트 캐시들이 있 다. 어떤 요청이 클라이언트 캐시에 의해 만족되지 않 을 때, 그 요청은 조직 캐시로 전송된다. 만일 요청된 문서가 조직 단계에서 발견되지 않으면, 그 요청은 지 역 단계 캐시로 전송되고 다음에 만족 안된 요청들을 국가 단계 캐시에 전송한다. 만일 요청된 문서가 어떤 캐시 단계에서도 발견되지 않으면, 국가 단계 캐시는 원래 서버에 직접 연결된다. 요청된 문서가 어떤 캐시 나 원래 서버에서 발견되면, 그 문서는 계층구조의 아 래로 운행되고, 각 중간 캐시에 사본을 남긴다. 같은 문서에 대한 추후 요청들은 그 문서가 적중될 때까지 캐싱 계층구조에서 상향 운행된다. 계층적 구조는 특히 다소의 협동하는 캐시 서버 들이 고속 회선을 갖지 않았을 때 대역폭 효율이 더 좋다. 계층적 구조에서, 인기있는 웹 페이지들은 요구 에 따라 효율적으로 유포될 수 있으나 캐싱 계층구조 와 관련된 많은 문제들이 있다. ▪ 계층 구조를 구축할 때, 캐시 서버는 종종 네트워 크에서 키 접근점에 배치될 때가 있다. 이 때 참여 하는 캐시 서버들간의 중요한 조정이 요구된다. ▪ 모든 계층 단계는 부가적인 지연이 발생될 수 있다. ▪ 높은 단계일수록 병목현상과 긴 대기지연이 발생 할 수 있다. ▪ 다수의 문서 사본들이 다른 캐시 단계들에 저장된다. Reagion Cache Server 16 / 22
Upper-Level Web-caching International Cache Server International Cache Server Client National Cache Server National Cache Server National Cache Server Client Upper-Level Web-caching의 계층 구조도 같은 계층의 캐시 서버는 상호 유기적으로 결합되어 있고, National Cache의 경우 클라이언트나 Region Cache에서 요청된 문서가 없을 경우 이웃하는 National Cache에 요청 받은 문서를 의뢰하게 된다. 같은 계층의 캐시 서버에 요청 받은 문서가 존재하면 그 문서를 요청한 클라이언트에게 되돌려 준다. 이러한 방법은 네터윅의 비용을 줄이고 (왜 줄이는가 모르겠음..) HTTP서버의 부하를 줄일 수 있게 제시해 준다. Reagion Cache Server Reagion Cache Server Reagion Cache Server Reagion Cache Server Client Client Client Client Client Client Client Client 17 / 22
Web-Caching 구성형태 Forward Cache Reverse Cache Trans parent 18 / 22
Forward Cache Web Server Web Server 포 워드 캐시 Client Web Cache Server 인터넷 사용자 앞에 캐싱 서버가 존재 인터넷 구간의 회선 비용 절감 로컬응답으로 컨텐츠의 빠른 전송 Client 19 / 22
Reverse Cache Web Server Web Server 리버스 캐시 Client Web Cache Server - 웹 사이트 서버 앞에 캐싱 서버가 존재 - 서버의 부하를 줄여 주는 역할 - 캐시 서버의 다운으로 전체 서버의 다운되는 문제점을 가짐 Client 20 / 22
Trans parent Web Server Web Server 트랜스 페어런츠 Client Web Web Cache Cache - 사용자 입장에서는 캐시가 있는지 없는지 모르는 상태로 캐시 서버를 위치 시킴 - 포워드나 리버스 형태 모두 사용될수 있음 - 별도의 장비(로드 밸런서, 라우터, L4 스위치)의 도움을 받아서 구성 - 웹 캐시에 문제가 생기더라도 로드 밸런서와 같은 장비에서 이를 감지해 웹 서버의 다운을 방지 Web Server 21 / 22
Q & A