[운영체제] App. Web Caching

gramm·2021년 2월 20일
0

운영체제

목록 보기
14/14
post-thumbnail

내용 출처

책 <운영체제와 정보기술의 원리>



지금까지 반효경 교수님의 <운영체제> 강의 내용을 중심으로 하고, 교수님의 저서 <운영체제와 정보기술의 원리>에서 추가할 만한 내용을 보충하는 방식으로 내용을 정리했다. 책의 마지막 장에서는 강의에서는 다루지 않는 웹 캐싱 기법을 다루고 있어서, 이 내용 중 일부를 정리해보았다.




웹 캐싱


Web Caching

  • 웹 사용자에 의해 빈번히 요청되는 데이터를 사용자와 지리적으로 가까운 웹캐시 서버에 보관해 빠른 서비스를 가능하게 하는 기법
  • 웹서버 쪽에는 역방향 프락시캐시(reverse proxy cache)가 사용된다.



웹캐시의 교체 알고리즘


교체 알고리즘의 성능 척도

  • 캐시 적중률 (Hit Rate : HR)
    사용자의 총 요청 중 캐시에서 적중되어 서비스된 요청의 비율

  • 바이트 적중률
    사용자에 의해 요청된 총 바이트 중에서 캐시에 이미 존재해 근원지 서버에서 받아올 필요가 없는 바이트 수의 비율

  • 지연 감소율
    캐시가 없을 경우의 총 사용자 지연시간 중 캐시가 있어서 줄어드는 지연시간의 비율

  • 비용 절감률 (Cost-Savings Ratio : CSR)
    객체들의 참조 가능성과 이질성을 함께 고려해서 평가한 객체들의 가치


전통적인 캐싱 환경과 달리, 웹캐싱에서는 캐싱 대상이 되는 객체들의 크기와 인출 비용(객체를 캐시로 읽어오는 비용)이 균일하지 않다.

그래서 전통적인 캐싱 환경에서는 캐시적중률을 높이는 것으로 충분했지만, 웹캐싱의 캐시 교체 알고리즘은 객체의 이질성을 고려할 수 있는 비용 절감률을 높이는 것을 목표로 한다.



시간지역성과 인기도


시간 지역성 (temporal locality)
최근에 참조된 객체가 다시 참조될 가능성이 높다

인기도 (popularity)
참조 횟수가 많은 객체일수록 또다시 참조될 가능성이 높다


1) 시간지역성의 측면

  • 대부분의 웹캐싱 알고리즘들은 객체의 직전 참조 시각을 활용한다.
  • LNC-R 알고리즘은 과거 K번째 참조 시각을 이용한다.

2) 참조 인기도의 측면

  • 일부 알고리즘의 경우 객체의 참조 횟수를 이용하고, 또 다른 부류의 알고리즘들은 여기에 노화 기법을 추가해 캐시 오염을 방지한다.
  • 노화 기법 : 오래전에 이루어진 참조에 대해서는 참조 횟수를 계산할 때 가중치를 줄여나가는 방법

LRV 알고리즘, MIX 알고리즘, LUV 알고리즘은 시간지역성과 참조 인기도를 모두 고려하여 객체의 참조 가능성을 예측한다.



웹캐시의 일관성 유지 기법


  • 강한 일관성 유지 기법

    • 반드시 최신 정보가 사용자에게 전달되는 것을 보장하는 기법
    • ex. polling-every-time, invalidation
  • 약한 일관성 유지 기법

    • 사용자의 요청이 있을 때마다 캐싱된 객체가 변경되었는지 근원지 서버에 일일이 확인하는 대신, 변경 가능성이 높은 경우에만 확인하는 기법
    • ex. adaptive TTL

강한 일관성 유지 기법은 득보다는 실이 많다. 따라서 대부분의 상용 프락시 서버들은 약한 일관성 유지 기법인 adaptive TTL 방법을 사용한다.



웹캐시의 공유 및 협력 기법


ICP (인터넷 캐시 프로토콜)

  • 사용자가 프락시서버에 웹 객체를 요구했는데, 프락시서버가 그 객체를 캐싱하고 있지 않은 경우, ICP에서 모든 동료 프락시들에게 ICP 질의를 멀티캐스트(multicast)해서 누가 요청된 웹 객체를 가지고 있는지 확인한다.
  • 웹 객체를 가지고 있는 동료 프락시가 답신을 보내온다.
  • ICP 질의를 보냈던 프락시는 답신을 준 프락시에 HTTP 요청을 보내서 해당 객체를 받아온 후 사용자에게 전달한다.

CARP (캐시 배열 간 경로지정 프로토콜)

  • 공유 웹캐시들에 동일한 웹 객체들이 중복 저장되는 것을 막기 위해 URL 공간을 분할해, 각각의 캐시는 자신에게 배정되는 객체들만을 캐싱하게 한다.



사전인출 기법 (prefetching)


웹 서비스의 응답 지연시간을 줄이기 위해, 사용자에 의해 아직 요청되지 않은 객체를 미리 받아오는 기법
  • 예측 사전인출 기법
    웹페이지들 간의 관계 그래프 등을 구성해 하나의 웹 페이지가 참조되었을 때 새로운 웹페이지가 참조될 확률을 과거의 참조 기록을 통해 예측하고 이 확률을 기반으로 사전인출을 수행하는 방법

  • 대화식 사전인출 기법
    사용자가 HTML 문서에 대한 요청을 했을 때, 웹캐시는 캐싱하고 있던 HTML 문서를 미리 파싱(parsing)해 그 문서에 포함되거나 연결된 웹 객체를 미리 받아와서 사용자의 후속 요청에 곧바로 전달하는 기법

profile
I thought I introduced

0개의 댓글