Magento Önbelleği - Vernik, Redis, APC, Memcache hakkında kafa karışıklığı


34

Magento performanslarını iyileştirmeye çalışıyorum (yakında veya sonra "MageDev" bu noktaya çarpıyor :)

Biraz araştırma yaptım ve çok iyi, ama homojen olmayan rehberler buldum.

Elimde bu var:

  • MemCache veya Redis genel önbellek sistemidir, verileri önbelleğe alır ve doğrudan Magento ( local.xml ) ile entegre edilebilir
  • APC php kodunun kendisi için bir önbellektir, sadece sunucu seviyesinde entegre edilebilir.
  • Vernik ters bir proxy'dir, yanıtın yalnızca sunucu düzeyinde entegre edilebildiği önbelleğidir. (Magento, Terebentin için bir uzatma var, ancak tam olarak ne yaptığından emin değilim)

Tüm bu iyi okumalardan sonra, EX için yukarıdaki önbellek sistemlerinden hangisinin kombinasyon halinde kullanılabileceği konusunda biraz kafam karıştı.

  • MemCache + APC?
  • Redis + APC?
  • Varnish'i yukarıdaki konfigürasyonlardan birine ekleyebilir miyim?

Açıkçası soru, Magento veya sunucuyu nasıl yapılandıracağınızla ilgili değil, önbellek sistemlerinin nasıl karıştırılacağı ile ilgili izin verilen imkanların ve izinlerin ne olduğu ile ilgilidir. (Bunun yanında eğer birileri iyi bir öneriyle gelebilirse, teşekkür ederim.)


FPC + Varnish + Turpentine'i birlikte kullanabilir misiniz? teşekkür ederim
Bruno Alvarenga

Terebentin, cila önbelleğini delik açmak içindir. Olduğu gibi, terebentin vernik kaldırmak için kullanılır.
siliconrockstar

Yanıtlar:


48

TP; DR - MageStack'te Varnish, Redis (önbellek), Redis (oturumlar) ve Eaccelerator / Zend OPCache kullanıyoruz (PHP sürümüne bağlı olarak)

Zaten çoğu anladın.

Önbellek arka uç, oturum deposu, opcode önbellek, tam sayfa önbellek ve ters proxy önbellek tamamen farklı.

Herkes için farklı teknolojiler kullanabilir ve bunları TÜM'ü aynı anda kullanabilirsiniz (Vernik ve FPC dahil)

Önbellek Arka Uçları

  • Dosyalar (Çekirdek) Varsayılan
  • Memcache (Çekirdek)
  • APC (Çekirdek)
  • Redis (<1.9 modülü, Colin Mollenhour'un izniyle)
  • MongoDB (modül nezaket Colin Mollenhour)
  • Rubic (modül nezaket Daniel Sloof)

Yalnızca bir önbellek arka ucunu kullanabilirsiniz.

Popüler inanışın aksine, bellek tabanlı bir önbellek kullanılması performansı iyileştirmez. Ancak Magento'nun varsayılan dosya tabanlı önbelleklemesindeki bazı önemli kusurların üstesinden gelecektir.

Bu mesajı yazarken Redis benim tavsiyem.

Oturum Mağazaları

  • Dosyalar (Çekirdek) Varsayılan
  • Memcache (Çekirdek)
  • Redis (<1.9 modülü, Colin Mollenhour'un izniyle)
  • MongoDB (modül nezaket Colin Mollenhour)

Yalnızca bir oturum deposu kullanabilirsiniz.

Popüler inanışın aksine, hafıza bazlı bir oturum deposu kullanmak performansı iyileştirmez.

Bu mesajı yazarken Redis benim tavsiyem.

OpCode Önbelleği

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

Gerçekten birden fazla opcode önbellek yükleyebilirsiniz, ancak bu önerilmez, ne de herhangi bir kazanç görmeyi beklemem.

Tavsiyem yukarıdaki parantez içinde.

Bu kaldıraç için herhangi bir modül kurulmasına gerek yoktur.

Ters Proxy Önbelleği

  • vernik
  • nginx
  • Apaçi
  • … ve daha fazlası

Birden fazla ters proxy kullanabilirsiniz ve bunu yaparken karmaşık ve önbellek uzamasına eğilimli olsa da, bunun yararları olabilir (örn. Önbellek yıkaması sırasında damgalamayı önlemek için).

Gerektiğinde birini kullanın (örn., Yavaş bir siteyi hızlandırmak için değil, hızlı bir sitede kaynak kullanımını azaltmak için).

Ters bir proxy'den yararlanmak için, hem sunucu tarafını etkinleştirmesi hem de Magento için bir modüle ihtiyacı vardır.

Modülün nedeni, önbellek mantığının kontrol edilmesine yardımcı olmaktır (yani, önbelleğe neyin olması gerektiğini ve neyin olmaması gerektiğini anlatmak) ve ayrıca önbellek içeriğini yönetmek (yani, önbellek temizlemelerini tetiklemek için).

Ne yaptığınızı tam olarak anlamadığınız sürece hiçbirini önermiyorum. Kötü bir şekilde ayarlanmış ters proxy'ler başlık bilgisini kırabilir, oturum kaybına, oturum paylaşımına, eski içeriğe neden olabilir, zaman / arabellek yüklemek için ek sınırlar uygulayabilir, ek kaynaklar tüketebilir vb.

Tam Sayfa Önbelleği

  • EE FPC
  • … Bir çok kişi (modüller aracılığıyla)

Gerektiğinde birini kullanın (örn., Yavaş bir siteyi hızlandırmak için değil, hızlı bir sitede kaynak kullanımını azaltmak için).

Yaygın inanışın aksine, bir ters proxy önbelleği ile birlikte bir FPC kullanabilirsiniz (ve gerekir). İkisi farklı problemleri çözer ve farklı yeteneklere sahiptir.

FPC'ler daha fazla istihbarattan yararlanabilir, çünkü kullanıcılar oturumuna ve Magento'nun çekirdeğine doğrudan erişime sahipler, oysa ters bir proxy uygulamanın farkında değil (çalışma biçiminde oldukça aptalca) - yani ikisi birbirini tamamlamıyor, birbirleriyle rekabet etmiyorlar .

Yani. Vernik veya FPC düşünmeyin, Vernik ve FPC düşünün.


1
Hakkında bir ipucu var mod_pagespeedmı? Bu arada harika ve net cevap thx
Fra

2
Bol miktarda öneri. Ancak PageSpeed'in kapsamı, orijinal sorunuzun çok ötesindedir (ve büyük ölçüde Magento ile ilgisi yoktur). KB ile ilgili birkaç ipucu var, sonassihosting.com/help/magestack/…
Ben Lessani - Sonassi

Magento ile kullanılabilecek farklı önbellek katmanları arasında açık bir ayrım. En önemlisi öneri. Ancak, magento dokümantasyon tavsiyesi bölümüne başvurun aksine vernik önbelleği kullanarak tavsiye görünmüyor - devdocs.magento.com/guides/v2.3/config-guide/varnish/...
Pandurang Patil

@PandurangPatil Cevabımın 8 yıl öncesinden - Magento 2'nin var olmadığı zamanlar olduğunun farkındasınız ... Bu yüzden yorumlarım "Yazarken". Bu soru sorulduğunda Magento 2 var olsaydı, cevabım farklı olurdu.
Ben Lessani - Sonassi

@ BenLessani-Sonassi Tarihe dikkat etmedim. Her neyse, bugünün bağlamında magento 2.x ile Varnish önbelleğini kullanmanızı tavsiye eder misiniz?
Pandurang Patil

8

Üstte Varnish olan Redis + APC'ye giderdim.

'Neden Redis' diye soruyorsun? Bu mükemmel SO cevabını okuyun . Redis, Magento'nun standart dosya tabanlı önbellekleme sisteminin yerini almaktadır. Redis daha hızlı olduğu için size hız konusunda bir miktar iyileşme sağlayacaktır.

Cila aslında iç işleyiş ile ilgisi yoktur. En üste yerleştirilir ve statik içeriği önbelleğe alır, böylece Magento'ya istek olarak asla ulaşmaz. Delinmiş delikler hariç.

Varnish sadece ön uç önbelleğe alma işlemine odaklanırken, Redis ayrıca EAV ve Yapılandırma önbellekleri gibi diğer önbellek türlerini de hızlandıracak.

İsteğe bağlı olarak, Magento için Varnish yerine Tam Sayfa Önbellek uzantılarını kontrol edebilirsiniz. O kadar hızlı olmasa da uygulanması genellikle daha kolaydır ve fazladan yazılıma (Varnish gibi) güvenmez.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.