Magento Cache - nhầm lẫn về Varnish, Redis, APC, Memcache


34

Tôi đang cố gắng cải thiện các màn trình diễn Magento (sớm hay muộn "MageDev" đạt điểm này :)

Tôi đã làm một số nghiên cứu và tôi tìm thấy rất nhiều hướng dẫn tốt, nhưng không đồng nhất.

Những gì tôi nhận được là:

  • MemCache hoặc Redis là hệ thống bộ đệm chung, chúng lưu trữ dữ liệu và chúng có thể được tích hợp trực tiếp với Magento ( local.xml )
  • APC là bộ đệm cho chính mã php chỉ có thể được tích hợp ở cấp máy chủ.
  • Varnish là một proxy ngược, nó lưu trữ phản hồi chỉ có thể được tích hợp ở cấp máy chủ. (có một phần mở rộng cho Magento, turpentine, nhưng tôi không chắc chính xác là gì)

Sau tất cả những điều tốt đẹp này, tôi vẫn còn một chút bối rối về những gì các hệ thống bộ đệm trên có thể sử dụng trong các kết hợp, cho EX:

  • MemCache + APC?
  • Redis + APC?
  • Tôi có thể thêm Varnish vào một trong các cấu hình trên không?

Để rõ ràng câu hỏi không phải là về cách cấu hình Magento hoặc máy chủ mà là khả năng được phép và một số giải phóng mặt bằng về cách trộn các hệ thống bộ đệm. (bên cạnh đó nếu bất cứ ai có thể đi kèm với một đề nghị tốt, tôi sẽ đánh giá cao nó cảm ơn.)


Bạn có thể sử dụng FPC + Varnish + Turpentine cùng nhau không? cảm ơn bạn
Bruno Alvarenga

Turpentine là để đục lỗ bộ nhớ cache Varnish. Như trong, nhựa thông được sử dụng để loại bỏ vecni.
siliconrockstar

Câu trả lời:


48

TL; DR - Trên MageStack, chúng tôi sử dụng Varnish, Redis (bộ đệm), Redis (phiên) và Eaccelerator / Zend OPCache (tùy thuộc vào phiên bản PHP)

Bạn đã hiểu hầu hết về nó.

Bộ đệm phụ, bộ lưu trữ phiên, bộ đệm opcode, bộ đệm toàn bộ trang và bộ đệm proxy ngược hoàn toàn khác nhau.

Bạn có thể sử dụng các công nghệ khác nhau cho tất cả và bạn có thể sử dụng chúng TẤT CẢ đồng thời (bao gồm cả Varnish và FPC)

Bộ đệm cuối bộ nhớ cache

  • Tệp (Lõi) Mặc định
  • Memcache (Lõi)
  • APC (Lõi)
  • Redis (<1.9 mô-đun lịch sự Colin Mollenhour)
  • MongoDB (mô-đun lịch sự Colin Mollenhour)
  • Rubic (mô-đun lịch sự Daniel Sloof)

Bạn chỉ có thể sử dụng một bộ đệm phụ.

Trái với suy nghĩ phổ biến, sử dụng bộ nhớ cache dựa trên bộ nhớ sẽ không cải thiện hiệu suất. Nhưng nó sẽ khắc phục một số lỗi nghiêm trọng trong bộ nhớ đệm dựa trên tệp mặc định của Magento.

Khi viết tin nhắn này, Redis là đề xuất của tôi.

Cửa hàng phiên

  • Tệp (Lõi) Mặc định
  • Memcache (Lõi)
  • Redis (<1.9 mô-đun lịch sự Colin Mollenhour)
  • MongoDB (mô-đun lịch sự Colin Mollenhour)

Bạn chỉ có thể sử dụng một cửa hàng phiên.

Trái với niềm tin phổ biến, sử dụng cửa hàng phiên dựa trên bộ nhớ sẽ không cải thiện hiệu suất.

Khi viết tin nhắn này, Redis là đề xuất của tôi.

Bộ nhớ cache OpCode

  • APC
  • XCache
  • Eaccelerator (PHP <5.4)
  • Zend OPCache (PHP> 5.4)

Bạn thực sự có thể cài đặt nhiều bộ đệm opcode, nhưng nó không được khuyến khích, tôi cũng không muốn thấy bất kỳ lợi ích nào.

Khuyến nghị của tôi là trong ngoặc ở trên.

Không có mô-đun được yêu cầu phải được cài đặt để tận dụng điều này.

Reverse Proxy Cache

  • Véc ni
  • Nginx
  • Apache
  • … và nhiều thứ khác nữa

Bạn có thể sử dụng nhiều proxy ngược và trong khi thực hiện việc này rất phức tạp và dễ bị kéo dài bộ đệm, nó có thể có giá trị (ví dụ: Để ngăn chặn việc đóng dấu trong quá trình xóa bộ đệm).

Sử dụng một khi cần thiết (ví dụ: Không phải để tăng tốc trang web chậm, nhưng để giảm mức sử dụng tài nguyên trên trang web nhanh).

Để tận dụng proxy ngược, nó cần cả cho phép phía máy chủ và cần một mô-đun cho Magento.

Lý do cho mô-đun là để giúp kiểm soát logic bộ đệm (nghĩa là Để nói cho bộ đệm biết những gì nên và không nên lưu vào bộ đệm) và cũng để quản lý nội dung bộ đệm (ví dụ: Để kích hoạt thanh lọc bộ đệm).

Tôi không khuyên bạn nên trừ khi bạn có sự hiểu biết hoàn toàn về những gì bạn đang làm. Thiết lập xấu proxy có thể phá vỡ thông tin tiêu đề, có thể gây mất phiên, chia sẻ phiên, nội dung cũ, áp dụng các giới hạn bổ sung để tải thời gian / bộ đệm, tiêu thụ tài nguyên bổ sung, v.v.

Cache toàn trang

  • FPC EE
  • Nhiều người khác (thông qua các mô-đun)

Sử dụng một khi cần thiết (ví dụ: Không phải để tăng tốc trang web chậm, nhưng để giảm mức sử dụng tài nguyên trên trang web nhanh).

Trái với suy nghĩ phổ biến, bạn có thể (và nên) sử dụng FPC kết hợp với bộ đệm proxy ngược. Hai người giải quyết các vấn đề khác nhau và có khả năng khác nhau.

Các FPC có thể tận dụng trí thông minh nhiều hơn, bởi vì họ có quyền truy cập trực tiếp vào phiên của người dùng và lõi của Magento, trong khi proxy ngược lại không nhận biết ứng dụng (nó khá ngu ngốc trong cách hoạt động) - vì vậy hai bên bổ sung cho nhau, không cạnh tranh với nhau .

I E. Đừng nghĩ Varnish hoặc FPC, hãy nghĩ Varnish và FPC.


1
Có manh mối mod_pagespeednào không? bằng cách trả lời tuyệt vời và rõ ràng thx
Fra

2
Rất nhiều khuyến nghị. Nhưng phạm vi của PageSpeed ​​vượt xa câu hỏi ban đầu của bạn (và phần lớn không liên quan đến chính Magento). Có một vài lời khuyên về KB của chúng tôi ở đây, sonassihosting.com/help/magestack/
Ben Lessani - Sonassi

Xóa sự phân tách giữa các lớp bộ nhớ đệm khác nhau có thể được sử dụng với Magento. Quan trọng nhất là khuyến nghị. Tuy nhiên, dường như bạn không khuyên bạn nên sử dụng bộ đệm vecni trái với đề xuất tài liệu magento tham khảo - devdocs.magento.com/guides/v2.3/config-guide/varnish/ Lỗi
Pandurang Patil

@PandurangPatil Bạn biết rằng câu trả lời của tôi là từ 8 năm trước - khi Magento 2 không tồn tại ... Do đó, ý kiến ​​của tôi "Tại thời điểm viết". Nếu Magento 2 tồn tại khi câu hỏi này được hỏi, câu trả lời của tôi sẽ khác.
Ben Lessani - Sonassi

@ BenLessani-Sonassi Tôi không chú ý đến ngày này. Dù sao, bạn có khuyên bạn nên sử dụng bộ đệm Varnish trong bối cảnh ngày nay với magento 2.x không?
Pandurang Patil

8

Tôi sẽ đi cho Redis + APC với Varnish trên đầu trang.

"Tại sao Redis" bạn hỏi? Đọc câu trả lời SO xuất sắc này . Redis về cơ bản thay thế hệ thống bộ nhớ đệm dựa trên tệp tiêu chuẩn của Magento. Vì Redis nhanh hơn nên nó sẽ giúp bạn cải thiện tốc độ.

Varnish thực sự không có nhiều liên quan đến hoạt động bên trong. Nó được đặt lên hàng đầu và lưu trữ nội dung tĩnh để nó không bao giờ thực sự đến được Magento như một yêu cầu. Ngoại trừ các lỗ đục lỗ đó là.

Trong khi Varnish chỉ tập trung vào bộ nhớ đệm frontend, Redis cũng sẽ tăng tốc các loại bộ đệm khác như bộ đệm EAV và Cấu hình.

Tùy chọn, bạn có thể kiểm tra một số tiện ích mở rộng Bộ đệm toàn bộ trang cho Magento thay vì Varnish. Mặc dù nó không nhanh như vậy nhưng nhìn chung thì dễ thực hiện hơn và không phụ thuộc vào phần mềm bổ sung (như Varnish)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.