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


111

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

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

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

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

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

답변:


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

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

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


3
이 : "(아마도 내 대답을 투표에 의한)은"내가 당신의 대답 투표를했다
세스크

따라서 varnish를 사용하는 것은 stackoverflow와 같은 사이트 (또는 활동 피드 페이지가있는 facebook과 같은 사이트)에 권장되지 않습니다. 맞나요?
Mohammad Reza Esmaeilzadeh

@jbferland 귀하의 예에서 내 질문은이 페이지의 상단에 내가받은 포인트 수와 함께 내 사진이 있다는 것입니다. 어떻게 Varnish로 캐시하지만 해당 영역을 동적으로 표시 할 수 있습니까?
Hossj

ESI 태그를 사용하는 @Hossj.
Johny Pie

Varnish는 웹 서버 앞에있을 수 있지만 웹 서버 뒤에있을 수도 있습니다. 또한 동일한 웹 서버 앞과 뒤에 동시에있을 수 있습니다. ;-) 예를 들어 Varnish는 SSL을 지원하지 않으므로 HTTPS를 처리하기 위해 Varnish 앞에 웹 서버를 두는 것은 드문 일이 아닙니다. 그런 다음 트래픽은 Varnish로 프록시되고 애플리케이션 웹 서버와 통신합니다.이 서버는 HTTPS 트래픽을 처리하는 서버와 동일한 서버 일 수 있습니다.
matt

32

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

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

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


5
당신은 그런데 내가 ... 니스 익명 사용자 캐싱에 잘 작동 생각을 못을 박았다
앨런 Jikamu
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.