마 젠토 캐시-니스, Redis, APC, Memcache에 대한 혼란


34

Magento 성능을 향상 시키려고합니다 (곧 "MageDev"가이 시점에 도달했습니다).

나는 약간의 연구를 해왔고 좋은 가이드지만 균질하지 않은 가이드를 많이 발견했습니다.

내가 가진 것은 :

  • MemCache 또는 Redis 는 일반 캐시 시스템이며 데이터를 캐시하며 Magento ( local.xml ) 와 직접 통합 될 수 있습니다.
  • APC 는 PHP 코드 자체에 대한 캐시이며 서버 수준에서만 통합 할 수 있습니다.
  • 니스 는 리버스 프록시이며 응답을 서버 레벨에서만 통합 할 수있는 캐시입니다. (마 젠토, 터 펜틴에 대한 확장이 있지만 정확히 무엇을하는지 잘 모르겠습니다)

이 좋은 독서를 마친 후에도 위의 캐시 시스템이 조합하여 사용할 수있는 것에 대해 약간 혼란 스럽습니다 .EX :

  • MemCache + APC?
  • Redis + APC?
  • 위 구성 중 하나에 니스를 추가 할 수 있습니까?

문제는 Magento 또는 서버를 구성하는 방법에 관한 것이 아니라 캐시 시스템을 혼합하는 방법에 대한 가능성과 허가를 얻는 것입니다. (누군가 좋은 추천을받을 수 있다면 고맙게 생각합니다.)


FPC + Varnish + Turpentine을 함께 사용할 수 있습니까? 감사합니다
Bruno Alvarenga

터 펜틴은 바니시 캐시를 펀칭합니다. 마찬가지로, 테레빈은 바니시 제거에 사용됩니다.
siliconrockstar

답변:


48

TL; DR -MageStack에서는 Varnish, Redis (캐시), Redis (세션) 및 Eaccelerator / Zend OPCache (PHP 버전에 따라 다름)를 사용합니다

이미 대부분 이해했습니다.

캐시 백엔드, 세션 저장소, opcode 캐시, 전체 페이지 캐시 및 리버스 프록시 캐시는 모두 완전히 다릅니다.

모두에 대해 서로 다른 기술을 사용할 수 있으며 동시에 모두 사용할 수 있습니다 (니스 및 FPC 포함).

캐시 백엔드

  • 파일 (코어) 기본값
  • Memcache (코어)
  • APC (핵심)
  • Redis (<1.9 모듈 제공 Colin Mollenhour)
  • MongoDB (모듈 제공 Colin Mollenhour)
  • 루빅 (모듈 제공 : Daniel Sloof)

하나의 캐시 백엔드 만 사용할 수 있습니다.

일반적인 생각과는 달리 메모리 기반 캐시를 사용해도 성능이 향상되지 않습니다. 그러나 Magento의 기본 파일 기반 캐싱에서 치명적인 결함을 극복 할 것입니다.

이 메시지를 쓸 때 Redis는 나의 추천입니다.

세션 저장소

  • 파일 (코어) 기본값
  • Memcache (코어)
  • Redis (<1.9 모듈 제공 Colin Mollenhour)
  • MongoDB (모듈 제공 Colin Mollenhour)

하나의 세션 저장소 만 사용할 수 있습니다.

일반적인 생각과 달리 메모리 기반 세션 저장소를 사용해도 성능이 향상되지 않습니다.

이 메시지를 쓸 때 Redis는 나의 추천입니다.

OpCode 캐시

  • APC
  • XCache
  • 촉진제 (PHP <5.4)
  • 젠드 OPCache (PHP> 5.4)

실제로 여러 opcode 캐시를 설치할 수는 있지만 권장하지 않으며 이득도 기대하지 않습니다.

내 추천은 위의 괄호 안에 있습니다.

이를 활용하기 위해 모듈을 설치할 필요가 없습니다.

리버스 프록시 캐시

  • 광택
  • 니 진스
  • 아파치
  • … 그리고 더 많은

여러 개의 리버스 프록시를 사용할 수 있으며 그렇게하면 캐시가 길어지고 복잡 해지는 경향이 있지만 장점이있을 수 있습니다 (예 : 캐시 플러시 중 스탬핑 방지).

필요한 경우 하나를 사용하십시오 (예 : 느린 사이트 속도를 높이 지 않고 빠른 사이트에서 리소스 사용을 줄이려면).

리버스 프록시를 활용하려면 서버 측을 활성화하고 Magento 용 모듈이 필요합니다.

이 모듈의 이유는 캐싱 로직을 제어하는 ​​데 도움을주고 (즉, 캐시에 캐시해야하는 것과 캐시하지 말아야 할 것을 알리기 위해) 캐시 내용을 관리하는 것입니다 (즉, 캐시 제거를 트리거하기 위해).

당신이하고있는 일을 완전히 이해하지 않으면 나는 어떤 것도 추천하지 않습니다. 리버스 프록시를 잘못 설정하면 헤더 정보가 손상되고 세션 손실, 세션 공유, 오래된 컨텐츠,로드 시간 / 버퍼에 추가 제한 적용, 추가 리소스 소비 등이 발생할 수 있습니다.

전체 페이지 캐시

  • EE FPC
  • … 다른 많은 것들 (모듈을 통해)

필요한 경우 하나를 사용하십시오 (예 : 느린 사이트 속도를 높이 지 않고 빠른 사이트에서 리소스 사용을 줄이려면).

널리 알려진 신념과 달리 FPC를 리버스 프록시 캐시와 함께 사용할 수 있습니다. 두 사람은 서로 다른 문제를 해결하고 다른 능력을 가지고 있습니다.

FPC는 사용자 세션과 Magento의 코어에 직접 액세스 할 수 있기 때문에 더 많은 인텔리전스를 활용할 수 있지만 리버스 프록시는 응용 프로그램을 인식하지 못합니다 (작동 방식이 상당히 멍청합니다). .

즉. 광택 또는 FPC를 생각하지 말고 광택 및 FPC를 생각하십시오.


1
에 대한 단서 mod_pagespeed? 그건 그렇고 위대하고 명확한 답변 thx
Fra

2
많은 추천. 그러나 PageSpeed의 범위는 원래 질문을 넘어서는 방법이며 Magento 자체와는 크게 관련이 없습니다. KB에 대한 몇 가지 팁이 있습니다. sonassihosting.com/help/magestack/…
Ben Lessani-Sonassi

Magento와 함께 사용할 수있는 다른 캐싱 계층 간 명확한 분리. 가장 중요한 것은 추천입니다. 그러나 magento 설명서 권장 사항과 달리 바니시 캐시를 사용하지 않는 것이 좋습니다. devdocs.magento.com/guides/v2.3/config-guide/varnish/…
Pandurang Patil

@PandurangPatil 당신은 내 대답이 8 년 전-Magento 2가 존재하지 않았을 때라는 것을 알고 있습니다. 따라서 내 의견은 "작성 당시"입니다. 이 질문을 받았을 때 마 젠토 2가 존재했다면 응답이 달라졌을 것입니다.
Ben Lessani-Sonassi

@ BenLessani-Sonassi 나는 날짜에주의를 기울이지 않았다. 어쨌든 오늘의 상황에서 magento 2.x와 함께 Varnish 캐시를 사용하는 것이 좋습니다?
Pandurang Patil

8

나는 바니시가있는 Redis + APC로 갈 것입니다.

'왜 Redis'를 물어 보십니까? 이 훌륭한 SO 답변을 읽으십시오 . Redis는 기본적으로 Magento의 표준 파일 기반 캐싱 시스템을 대체합니다. Redis가 빠르기 때문에 속도가 약간 향상됩니다.

바니시는 실제로 내부 작업과 관련이 없습니다. 그것은 위에 올려지고 정적 콘텐츠를 캐시하므로 실제로는 요청으로 Magento에 도달하지 않습니다. 구멍이 뚫린 부분은 제외하십시오.

Varnish는 프론트 엔드 캐싱에만 중점을 두지 만 Redis는 EAV 및 구성 캐시와 같은 다른 유형의 캐시 속도도 향상시킵니다.

선택적으로 Varnish 대신 Magento에 대한 전체 페이지 캐시 확장을 확인할 수 있습니다. 빠르지는 않지만 일반적으로 구현하기가 쉽고 추가 소프트웨어 (예 : 니스)에 의존하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.