Magento Cache - kebingungan tentang Varnish, Redis, APC, Memcache

34

Saya mencoba untuk meningkatkan kinerja Magento (cepat atau lambat "MageDev" mencapai titik ini :)

Saya melakukan riset dan menemukan banyak panduan yang bagus, tetapi tidak homogen.

Yang saya dapatkan adalah:

  • MemCache atau Redis adalah sistem cache generik, mereka menyimpan data cache dan mereka dapat diintegrasikan langsung dengan Magento ( local.xml )
  • APC adalah cache untuk kode php itu sendiri hanya dapat diintegrasikan di tingkat server.
  • Varnish adalah proxy terbalik, itu cache respon hanya dapat diintegrasikan di tingkat server. (ada ekstensi untuk Magento, terpentin, tapi saya tidak yakin apa tepatnya)

Setelah semua bacaan yang bagus ini, saya masih agak bingung tentang sistem cache apa yang mungkin digunakan dalam kombinasi, untuk EX:

  • MemCache + APC?
  • Redis + APC?
  • dapatkah saya menambahkan Varnish ke salah satu konfigurasi di atas?

Hanya untuk memperjelas pertanyaannya bukan tentang cara mengkonfigurasi Magento atau server tetapi apa kemungkinan yang diizinkan dan beberapa izin tentang cara mencampur sistem cache. (di samping itu jika ada yang bisa datang dengan rekomendasi yang bagus saya akan sangat berterima kasih.)

Fra
sumber
Bisakah Anda menggunakan FPC + Varnish + Terpentin bersama? terima kasih
Bruno Alvarenga
Terpentin adalah untuk melubangi cache Varnish. Seperti dalam, terpentin digunakan untuk menghilangkan pernis.
siliconrockstar

Jawaban:

48

TL; DR - Pada MageStack kami menggunakan Varnish, Redis (cache), Redis (sesi) dan Eaccelerator / Zend OPCache (tergantung pada versi PHP)

Anda sudah mengerti sebagian besar dari itu.

Cadangan backend, sesi store, cache opcode, cache halaman penuh dan reverse cache proxy semuanya sangat berbeda.

Anda dapat menggunakan berbagai teknologi untuk semua dan Anda dapat menggunakannya SEMUA secara bersamaan (termasuk Varnish dan FPC)

Backends Cache

  • Default File (Inti)
  • Memcache (Core)
  • APC (Inti)
  • Redis (<1,9 modul milik Colin Mollenhour)
  • MongoDB (modul milik Colin Mollenhour)
  • Rubic (modul milik Daniel Sloof)

Anda hanya dapat menggunakan satu backend cache.

Bertentangan dengan kepercayaan umum, menggunakan cache berbasis memori tidak akan meningkatkan kinerja. Tapi itu akan mengatasi beberapa kesalahan fatal dalam caching berbasis file default Magento.

Saat menulis pesan ini, Redis adalah rekomendasi saya.

Toko Sesi

  • Default File (Inti)
  • Memcache (Core)
  • Redis (<1,9 modul milik Colin Mollenhour)
  • MongoDB (modul milik Colin Mollenhour)

Anda hanya dapat menggunakan satu toko sesi.

Berlawanan dengan kepercayaan populer, menggunakan sesi store berbasis memori tidak akan meningkatkan kinerja.

Saat menulis pesan ini, Redis adalah rekomendasi saya.

Tembolok OpCode

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

Anda benar-benar dapat menginstal beberapa cache opcode, tetapi itu tidak disarankan, dan saya juga tidak akan mengharapkan keuntungan.

Rekomendasi saya ada di dalam tanda kurung di atas.

Tidak ada modul yang harus dipasang untuk memanfaatkan ini.

Membalikkan Cache Proksi

  • Pernis
  • Nginx
  • Apache
  • … dan masih banyak lagi

Anda dapat menggunakan beberapa proksi terbalik, dan meskipun melakukannya rumit dan rentan terhadap pemanjangan cache, ia dapat memiliki manfaat (mis. Untuk mencegah pencekalan saat flush cache).

Gunakan satu bila perlu (mis. Tidak untuk mempercepat situs yang lambat, tetapi untuk mengurangi penggunaan sumber daya di situs yang cepat).

Untuk meningkatkan proxy terbalik, diperlukan sisi server yang aktif dan perlu modul untuk Magento.

Alasan untuk modul ini adalah untuk membantu mengendalikan caching logic (mis. Untuk memberi tahu cache apa yang seharusnya dan tidak harus cache) dan juga untuk mengelola konten cache (mis. Untuk memicu pembersihan cache).

Saya tidak merekomendasikan apa pun kecuali Anda memiliki pemahaman total tentang apa yang Anda lakukan. Pengaturan proxy terbalik yang buruk dapat merusak informasi header, dapat menyebabkan hilangnya sesi, berbagi sesi, konten basi, menerapkan batas tambahan untuk memuat waktu / buffer, menggunakan sumber daya tambahan dll.

Cache Halaman Penuh

  • EE FPC
  • ... banyak yang lain (melalui modul)

Gunakan satu bila perlu (mis. Tidak untuk mempercepat situs yang lambat, tetapi untuk mengurangi penggunaan sumber daya di situs yang cepat).

Berlawanan dengan kepercayaan populer, Anda dapat (dan harus) menggunakan FPC bersamaan dengan cache proxy terbalik. Keduanya memecahkan masalah yang berbeda dan memiliki kemampuan yang berbeda.

FPC dapat meningkatkan lebih banyak kecerdasan, karena mereka memiliki akses langsung ke sesi pengguna dan inti Magento, sedangkan proxy sebaliknya tidak sadar aplikasi (itu cukup bodoh dalam cara kerjanya) - sehingga keduanya saling melengkapi, tidak saling bersaing, tidak bersaing satu sama lain .

Yaitu. Jangan berpikir Varnish atau FPC, pikirkan Varnish dan FPC.

Ben Lessani - Sonassi
sumber
1
Ada petunjuk tentang mod_pagespeed? Ngomong-ngomong, jawaban yang bagus dan jelas thx
Fra
2
Banyak rekomendasi. Tetapi ruang lingkup PageSpeed ​​jauh melampaui pertanyaan awal Anda (dan sebagian besar tidak terkait dengan Magento sendiri). Ada beberapa tips tentang KB kami di sini, sonassihosting.com/help/magestack/…
Ben Lessani - Sonassi
Hapus pemisahan antara berbagai lapisan caching yang dapat digunakan dengan Magento. Paling penting rekomendasinya. Namun, Anda sepertinya tidak merekomendasikan menggunakan varnish cache bertentangan dengan referensi
Pandurang Patil
@PandurangPatil Anda sadar bahwa jawaban saya berasal dari 8 tahun yang lalu - ketika Magento 2 tidak ada ... Karenanya komentar saya "Pada saat penulisan". Seandainya Magento 2 ada saat pertanyaan ini diajukan, respons saya akan berbeda.
Ben Lessani - Sonassi
@ BenLessani-Sonassi Saya tidak memperhatikan tanggal. Bagaimanapun, akankah Anda merekomendasikan menggunakan Varnish cache dalam konteks hari ini dengan magento 2.x?
Pandurang Patil
8

Saya akan memilih Redis + APC dengan Varnish di atasnya.

'Kenapa Redis' Anda bertanya? Baca jawaban SO yang luar biasa ini . Redis pada dasarnya menggantikan sistem caching berbasis file standar Magento. Karena Redis lebih cepat akan memberi Anda beberapa peningkatan pada kecepatan.

Pernis sebenarnya tidak ada hubungannya dengan pekerjaan batin. Itu diletakkan di atas dan cache konten statis sehingga tidak pernah benar-benar mencapai Magento sebagai permintaan. Kecuali lubang yang dilubangi bagian itu.

Sementara Varnish hanya berfokus pada caching frontend Redis juga akan mempercepat jenis cache lainnya seperti EAV dan cache Konfigurasi.

Secara opsional, Anda dapat memeriksa beberapa ekstensi Cache Halaman Penuh untuk Magento alih-alih Varnish. Meskipun tidak secepat itu umumnya lebih mudah untuk diterapkan dan tidak bergantung pada perangkat lunak tambahan (seperti Varnish)

Sander Mangel
sumber