[memcached] 3 계층 웹 아키텍처의 속도를 높이기위한 Memcache (d) 대 Varnish

벤치 마크 (3 계층 웹 아키텍처) 속도를 높이려고 노력 중이며 Memcache (d) 및 Varnish와 관련된 몇 가지 일반적인 질문이 있습니다.

  • 차이점은 무엇입니까?
    나에게 보인다 니스는 웹 페이지를 캐시, 웹 서버 뒤에 코드의 변화, 단지 구성이 필요하지 않습니다.
    반면에 Memcached 는 범용 캐싱 시스템이며 주로 데이터베이스의 결과를 캐시하는 데 사용되며 get방법 변경 (첫 번째 캐시 조회) 이 필요합니다 .

  • 둘 다 사용할 수 있습니까? 데이터베이스 캐싱을 위해 프론트 웹 서버 및 Memcached의 Varnish?

  • 더 나은 옵션은 무엇입니까?

    (시나리오 1-대부분 쓰기,
    시나리오 2-대부분 읽기,
    시나리오 3-읽기 및 쓰기가 유사 함)



답변

  • Varnish는 웹 서버 앞에 있습니다. 캐시하는 역방향 http 프록시로 작동합니다.
  • 둘 다 사용할 수 있습니다.
  • 대부분 쓰기-Varnish는 영향을받은 페이지를 제거해야합니다. 이로 인해 오버 헤드가 발생하고 수정 된 페이지에 대한 이점이 거의 없습니다.
  • 대부분 읽기-Varnish가 대부분을 다룰 것입니다.
  • 유사한 읽기 및 쓰기-Varnish는 많은 페이지를 제공하고 Memcache는 알려진 데이터와 새로운 데이터가 혼합 된 페이지에 대한 정보를 제공하여 페이지를 더 빠르게 생성 할 수 있습니다.

stackoverflow.com에 적용 할 수있는 예 :이 주석을 추가하면 페이지 캐시가 무효화되었으므로이 페이지는 Varnish (그리고 처음에는 캐싱 할 가치가없는 내 프로필 페이지에서도 지워야합니다. 모두 무효화해야 함) 영향을받는 페이지는 약간의 문제 일 수 있습니다.) 그러나 모든 주석은 여전히 ​​Memcache에 있으므로 데이터베이스는이 주석 만 작성하면됩니다. 페이지를 생성하기 위해 데이터베이스에서 다른 작업을 수행 할 필요가 없습니다. 모든 댓글은 Memcache에서 가져오고 누군가가 다시 영향을 줄 때까지 페이지가 다시 캐시됩니다 (아마도 내 답변에 투표함). 다시 말하지만 데이터베이스는 투표를 작성하고 다른 모든 데이터는 Memcache에서 가져 오며 수명이 빠릅니다.

Memcache는 많은 읽기 작업에서 DB를 저장하고 Varnish는 페이지 생성 빈도를 줄임으로써 CPU 부하에서 동적 웹 서버를 저장합니다 (Memcache가 아니라면 db 부하도 약간 감소).


답변

내 경험은 Drupal과 함께 Varnish를 사용하는 데서 비롯됩니다. 가능한 한 간단한 용어로 제가 대답하는 방법은 다음과 같습니다.

일반적으로 Varnish는 인증되지 않은 (쿠키를 통해) 트래픽에 대해 작동하며 memcached는 인증 된 트래픽을 캐시합니다.

그래서 둘 다 사용하십시오.


답변