정적 웹 콘텐츠(static web content)

  • HTML, JPG, GIF
  • 실시간으로 변하지 않는 데이터

동적 웹 콘텐츠(dynamic web content)

  • 실시간성을 요구하는 콘텐츠
  • ASP, CGI
  • 웹서버의 과부하를 일으키는 주요 요인
  • 데이터 관리가 어려움 
    • 요청받은 내용에 대해 프로그램을 실행한 후 그 결과물을 보내주어야 하기 때문
  • 동적 웹 콘텐츠 캐싱은 웹서버 내부에서 빠른 처리를 위해
    • 웹서버 전위(front-end)에 설치하는
      • 역방향 프락시캐시(reverse proxy cache)
      • 웹서버 가속기 (web severaccelerator)

 

 

약한 일관성 유지 기법 :: 변경되었을 가능성이 높은 경우에만 확인 하는 기법

  • adaptive TTL(time-to-live):  캐시 내에 이미 존재한는 객체에 대한 요청이 있을 때마다 근원지 서버에 객체의 변경 여부 확인
    • 대부분의 상용 프락시서버들이 사용

강한 일관성 유지 기법 :: 반드시 최신 정보가 사용자에게 전달되는 것을 보장하는 기법

  • 웹서버와 네트워크의 부담이 커짐
  • polling-every-time : 변경여부를 매번 근원지 서버에 확인
    • 사용자 지연시간 증가
    • 네트워크 유통량 증가
    • 웹서버의 과부하
  • invalidation : 근원지 서버가 객체를 캐싱하고있는 모든 프락시버를 기억

 

 

캐싱(caching) ?

저장장치 계층간의 속도차이를 완충하는 기법을 연구해 온 예시

  • 컴퓨터구조 -> 캐시 메모리
  • 운영체제 -> 페이징 기법
  • 데이터베이스 -> 버퍼링 기법
  • 웹의 보편화와 컨텐츠 전송 네트워크(Contents Delivery Network: CDN)의 발달
    -> 원격지의 객체를 캐싱하는 기법인 웹캐싱 기법의 중요성 부각

웹캐싱(web caching)이란?

  • 웹 사용자에 의해 빈번히 요청되는 데이터를 사용자와 지리적으로 가까운 웹캐시 서버에 보관해
    빠른 서비스를 가능하게 하는 기법
  • 인터넷 정보에 신속히 접근할 수 있게 하는 주요 기법중 하나

(필요성) 웹을 많은 사람들이 사용함에 의한

  • 네트워크의 병목현상 발생
  • 웹서비스의 지연현상 발생

프락시서버(proxy server)

프록시 서버(proxy server)는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램을 가리킨다. 서버 클라이언트 사이에 중계기로서 대리로 통신을 수행하는 것을 가리켜 '프록시', 그 중계 기능을 하는 것을 프록시 서버라고 부른다. -wikipedia-
  • 웹캐싱만을 전담하는 서버
  • 웹사용자에 대한 서비스 지연시간을 줄이기 위해 사용
  • 네트워크의 대역폭 절약하기 위해 사용
  • 웹서버의 부하를 줄이는 역할

역방향 프락시캐시(proxy cache)

  • 웹서버쪽에서 사용
  • 웹서버의 객체들을 캐싱하여 서버의 부하는 직접적으로 줄이는 역할
  • 웹 사용자의 지연시간을 줄이는 역할

캐시 교체 알고리즘(Cache replacement algorithm)

  • 한정된 캐시 공간을 가고 사용자들의 지속적인 요청을 처리하기 위해 어떠한 객체를 캐시에 보관하고 
    어떠한 객체를 캐시에서 삭제할지 온라인으로 결정하는 알고리즘
  • 연구되어온 시스템
    • 버퍼캐싱, 페이지
    • LRU(Least Recently Used)

 

일관성 유지(consistency policy)기법이 필요

1) 비활성화 기법

전력 소모 기준 디스크의 상태 분류

  • 활동(active) : 디스크 회전 O, 헤드가 데이터 읽기/쓰기 O
  • 공회전(idle) : 디스크 회전 O, 헤드가 데이터 읽기/쓰기 X
  • 준비(standby) : 디스크 회전 X, 인터페이스 활성화 O
  • 휴면 (sleep) : 디스크 회전 X, 인터페이스 활성화 X

활성상태  =  활동, 공회전

비활성상태 = 준비, 휴면

 

후속 요청까지의 시간 간격이 일정 시간(break-even time) 이상일 경우에만 디스크 회전 정지
-> 미래의 요청이 도착하는 시점과 간격을 정확히 예측하는 것이 중요

 

디스크 비활성화하는 시기를 결정하는 방법

  • 시간기반(timeout based) 기법
    디스크가 일정시간 이상 공회전이면 장치 정지 -> 요청이 오면 디스크 활성화
  • 예측기반(prediction based) 기법
    과거의 데이터를 기반으로 공회전 구간의 길이 예측 -> 디스크 비활성화시점 결정
  • 확률기반(stochastic based) 기법
    디바이스의 상태변경 시간간격을 구하기 위해 확률분포를 통해 요청을 모델링

2) 회전속도(Rotations Per Minute: RPM) 조절 기법

  • 하드웨어 + 운영체제
  • 워크로드 특성을  활용한 회전속도 조절
  • 멀티미디어 환경에서 주기성과 규칙성을 참조하여 미래를 예측
  • 실시간 응용프로그램의 재생률(bit-rate)과 버퍼 크기에 따라 디스크의 회전속도 조절

3) 디스크의 데이터 배치 기법

FS2 파일 시스템(free space file system) 제안 - > 응답시간과 전력소모량 절감
: 디스크 빈 공간 내에 데이터의 복제본을 많이 만들어 헤드위치에서 가까운 복제본에 접근하게 하는 방법

 

4)버퍼캐싱 및 사전 인출 기법

미래에 요청될 데이터를 미리알거나 예측하여 헤드 위치로부터 가까운 데이터를 사전 인출(prefetching)

+

긴급한 요청이 아닌경우 디스크의 활성 상태  여부에 따라 요청을 최대한 지연

이용

 

디스크가 저전력모드 일때 입출력 처리를 최대한 지연시켰다가 정상전력모드로 들어왔을때 사전인출을 공격적으로 하는 방식 

 

5) 쓰기전략을 통한 저전력 디스크 기법

  • write-back with eager updaters
    대상 디스크가 비활성 상태 -> 디스크 쓰기를 하지 않고 대기
    활성화 상태 -> 디스크 쓰기
  • write-through with deferred update
    대상 디스크가 비활성 상태 -> 블록들을 로그 디스크에 쓰기
    활성화 상태 -> 디스크에 쓰기연산을 수행

 

 

+ Recent posts