CE 1.8 Tam Sayfa Önbellek - Bir FPC Magento Modülü? Vernik? Her ikisi de?


15

Topluluk Sürümü 1.8 için Tam Sayfa Önbelleğe Alma konusunu araştırırken biraz kafam karıştı. Zaten iki seviyeli Redis Önbellek, CDN uyguladım, maksimum performans için (tabii ki ayrı bir sunucuda DB / w) MySQL'in my.cnf ayarladı ve bir yük dengeleyici arkasında mağazamızı barındıran 2 sunucum var. İlk performans ayarlarını yapmadan önce FPC için hemen atlamadığımı belirtmek istiyorum.

Daha önce hiç bir şekilde Varnish'i Magento olarak kullanmadım, Magento da bırakmadım ve Magento'da da bir FPC kurmadım. Varnish'i, bir CDN ile kendi başına bir sayfa önbelleği arasında çapraz olarak çalışan bir proxy olarak anlıyorum, istek web sunucusuna bile ulaşmadan önce tarayıcıya veri gönderiyor. Anladığım kadarıyla, bir FPC Modülü yerel olarak web sunucusunun kendi yemeklerini hazırladığı bir önbellek oluşturur. Her iki kurulum için, dinamik içeriği tarayıcıya almak için bazı "Delik Delme" yapmanız gerektiğini biliyorum (teknikler farklı olsa da, bir modül kullanma veya Vernik kullanma arasında). Burada yanlış bir şey varsa lütfen beni düzeltin.

Şimdiye kadar, onları sitenize yardım edebileceğiniz iki ayrı varlık olarak düşündüm, ancak şimdi okuduğum bazı şeyler bunun tersini ima ediyor gibi görünüyor. Orijinal planım Magento için " Warp Advanced Tam Sayfa Önbellek " modülünü satın almaktı (eski adıyla "Tiny Brick Lightspeed FPC", sanırım) en pahalı gibi görünüyor, çünkü daha pahalı bir dokunuş varsa (ama açıkçası) 350 $ firmamız için, özellikle ne yapabileceği için çok fazla değil). Kendim ve 2 geliştirici arkadaşım, ondan ne elde edebileceğimizi en üst düzeye çıkarmak için kendi özel, ev yapımı temamızda doğru ve tam olarak uygulamayı öğrenmeyi planlıyordu. Bu yapıldıktan sonra, yolun bir noktasında, Vernik uygulamasına da bakacağımı düşündüm - ama daha önce de söylediğim gibi, ayrı olduklarını anladım.

Ancak şimdi, bu PageCache Powered by Varnish gibi ücretsiz uzantılara veya doğrudan Varnish ile çalışan Magento Tam Sayfa Cache modülleri olan yaklaşık 800 USD olan Varnish Cache tarafından desteklenen bu Vortex Cache ile karşılaşmaya başlıyorum.

Size sorum, yığın değişimi, nasıl bir FPC ve Vernik görmeliyim? Ayrı varlıklar olarak mı? Eğer öyleyse, birbirlerini dışlarlar mı? Onlar birlikte uygulamam gereken aynı madalyonun iki yüzü mü? Yoksa benzerler ama birbirini dışlayan veya kapsayıcı değil mi?

Yukarıda bahsettiğim Warp Advanced FPC'yi Varnish ile kullanabilir miyim? Vernik ile kullanmalı mıyım ? Veya Vernik kullanmayı planlıyorsam farklı bir FPC kullanmak daha mı iyi olur? VEYA dahası, verniğe ihtiyacım olmayacak kadar iyi bir FPC var mı? Ya da tam tersi, sadece Vernik kullanmalı ve FPC fikrinden vazgeçmeli miyim?

Metin duvarı için özür dilerim, ama birçok makale, blog ve forum gönderisine bakıyorum ve bu sorulara kesin bir cevap bulamadım. Bu konuyla ilgili yardımlarınız ve katkılarınız gerçekten takdir ediyorum =)

Son olarak, Vernik ve web sunucuları hakkında kısa bir soru. Şu anda normal Apache LAMP yığın kurulumunu kullanıyorum, ancak bir süredir insanların Ngenx'i Magento ile kullanma konusunda çıldırdığını görüyorum. Bazı testleri kendim yaptım, stres ve yük testleri yaptım ve doğru koşullarda kesinlikle biraz daha iyi çalışabileceği anlaşılıyor. Bu nedenle, yakın gelecekte bir noktada geçiş yapmayı düşünüyordum. Bu zaten bir FPC ve / veya Vernik kullanma isteğimi ve kararımı etkiler mi?

Teşekkür ederim!!!

EDIT: Oh! Ve daha hızlı bir soru - Sitemi bir yük dengeleyicisinin arkasında barındıran iki sunucum olduğu için (bu da ihtiyaç duyulduğunda yatay olarak artırılabilen bir kurulumdur), Redis ve Memcached'i ayrı bir sunucuda barındırılan tam olarak kullanıyorum. Oturumlarım için Web ve DB olanlar ve Magento'nun (iyi, Zend'in) İki Seviyeli Önbelleği. FPC'nin bu verileri sistemlerden birine depolayacağını varsayıyorum? Orada saklamak için belirli bir uzantıya sahip olmam gerekir mi yoksa hepsi mi yapıyor? Ve sanmıyorum, bu yine de Verniği etkiler mi? Tekrar teşekkürler!!


Görünüşe göre, itibar eksikliğimden dolayı metin duvarıma sadece iki bağlantı koyabilirim. : Ne bir yol ... Yani, burada bağlantılardır internet noktaları için trol gitmemi teşvik etmek Girdap Önbellek Vernik Cache tarafından desteklenmektedir Veee Varnish powered by PageCache
ThatSourDiesel

3
Vernik hakkında fazla tavsiye sunamıyorum, ancak Lesti FPC'ye bir göz atmanızı tavsiye ederim - gordonlesti.com/lestifpc Tamamen ücretsiz, delik delme özelliği var, yönetici aracılığıyla yapılandırılabilir. Kesinlikle harika.
Paul

@ThatSourDiesel - bize ne yaptığınızı söyleyebilir misiniz? Tercihen kabul edilen cevap altında, bunu en azından çözümünüz için kullandıysanız.
SPRBRN

Yanıtlar:


28

Bilgisayar biliminde iki zor şey vardır:

  1. Bir şeyleri adlandırma
  2. Önbellek geçersiz kılma.

Delik delme # 2 kategorisine giriyor :)

Genel

En iyi yaklaşım, yığının alt noktalarından başlamak ve Magento'nun ön ucuna kadar optimize etmektir.


Veritabanı ve Dosya Sistemi

Daima odaklanacak ilk alanlar olmalıdır. Çünkü. G / Ç.

MyTop , Linux 'top' komutunu taklit edecek ve MySQL örnek (ler) inizin durumu hakkında size fikir verecek kullanışlı bir Linux tabanlı perl betiğidir.

Htop bir olduğunu daha sağlam üst , strace özelliği ins / bir sürecin çıkışları potansiyel darboğazları bulmak için belirlenmesine yardımcı olabilir.

Iotop , G / Ç'yi izlemek için göz önünde bulundurulması gereken başka bir araçtır.

Mysqltuner.pl ve mysql tunning primer gibi diğer kullanışlı yardımcı betikler MySQL çalışma zamanı değişkenleriniz hakkında bilgi verebilir ve yardım önerileri sunabilir. En iyi yaklaşımın her zaman toplanan bilinen verilere dayanarak gereksinimlerin ve ayarların değerlendirilmesi olduğu için bunların kılavuz olması gerektiğini unutmayın. Bunu körü körüne yapmak zaman zaman yarardan daha fazla zarara neden olabilir. Ve bunları en az 24 saat mysql çalışma zamanı değişkenleri olmadan erken çalıştırmak kötü önerilerde bulunabilir.

Unutmayın, Percona , MariaDB ve standart MySQL, yukarıdakilerin hepsiyle çalışmalıdır. Magento InnoDB ve XtraDB'de çok ağır olduğu için Percona'yı bir MySQL çatalı olarak tercih etmek, db motoruna birçok araç ve geliştirme sunuyor.


Apache veya Nginx

Yine de Apache'yi birçok kişiye iyi hizmet ettiği için kullanıyorum. Nginx'i de kullandım ve yapılandırdım. Bazı avantajlar sunmasına rağmen bir öğrenme eğrisi vardır. İkisi de popüler seçenek olsa da, Apache'ye göre bazı avantajlar sunuyor, biri daha küçük bir bellek alanı olacak. Bununla birlikte, PHP-FPM çalıştıran zayıf bir Apache'nin benzer bir bellek alanı olacaktır.

Konuşma konusu olan mesele:

Bu makale performansla ilgili olduğundan, apache'nin kendi yolundan çıkmasına yardımcı olmanın en kolay yollarından birinin .htaccess dosyalarını kullanmak olmadığını belirtmeliyim. Dizin stanzalarınıza oraya koyduklarınızı koyun, AllowOverride'ı "None" olarak ayarlayın ve apache'den .htaccess'e dikkat etmesi gerekip gerekmediğini anlamak için tüm belge yolunu geçmesini istemezsiniz. Bu, birçok insanın kaçırdığı basit, basit bir ayarlama ipucudur.

Bu kullanıma alma işleminin kolaylaştırılmasına yardımcı olmak için:

Her ikisinden de kolaylık sağlamak için bir CDN kullanmak açık bir şekilde yardımcı olacaktır, ancak son kullanıcı tarayıcılarının çoğu aynı sayıda bağlantı sınırına sahip her iki sunucuya da bağlanabileceğinden, ön uç optimizasyonundan fayda sağlayacaktır. Bu aynı zamanda Apache'yi basit bir statik görüntü sunmak için kontrollerden atlamak zorunda kalmaktan kurtarır. Lighthttpd , yalnızca bir CDN'nin yanı sıra içerik için statik bir web sunucusu çalıştırmak istiyorsanız bir seçenektir.

PHP

PHP-FPM ve APC. Bunları kullanın, Magento için gerekli olmayan gereksiz veya istenmeyen PHP modüllerini çıkarın.


Magento kod tabanı

AOE_TemplateHints , bloklarınızın düzgün önbelleğe alıp almadığını belirlemek için mükemmeldir:

AOE_Profiler profilleme için iyidir, emin olun ve DB katman profillemesini etkinleştirin (yerel / dev ortamında açık bir şekilde). Bu, daha önce bahsedilen mytop aracıyla birlikte, kötü davranan SQL bulmayı daha kolay bir görev haline getirir.

3. Taraf modülleri ve Özel kod

Magento'nun kendisinden optimizasyon için bazı çok iyi en iyi uygulamalar iyi bir okuma ve 3. taraf modülleri kullanmadan önce gözden geçirirken akılda tutmaktır. (çok sayıda kötü davrananlar IMO var).

Magento EKG'den bir araç Magniffer, yukarıda verilen PDF'ye dayanarak kötü davranış kodunu kolayca tanımlamaya yardımcı olacaktır. Ancak symfony / php-parser tabanlıdır ancak besteci ile yüklenebilir.


vernik

biri sadece verniği açmaz

Varnish'in bir savunucusu olarak yazar bir FreeBSD çekirdek geliştiricisiydi, bazı çılgın alt saniye yükleme süreleri sunuyor. Bununla birlikte, şablonlarınızda kutudan çıkmayan en ufak farklılıklardan bazıları bile varsa, ihtiyacınız olan içeriği delmek için vernik / macenta yapılandırmak için zaman harcayacaksınız. Gördüğüm çoğu, sadece Vernik'ten önbelleğe alınmamış öğeleri AJAX'ify olacak.

Bu delik delme ve önbelleğe almayı kolaylaştırmaya yardımcı olacak bir dizi Magento modülü vardır:

Sonuçta bu, optimizasyon yolculuğunuzun son ucunda olmalı ve işleri düzeltmek için bazı özelleştirmeler gerekebilir .


Magento CE FPC

Şimdiye kadar bulduğum en iyi CE FPC: Lesti :: FPC

Topluluk için çok iyi bir araya getirilmiş (tüm gözlemci tabanlı) açık kaynaklı ve ücretsiz bir FPC'dir.


Günün sonunda kendi test ve kararlarınızı kullanın.

Bazı okumalar:


2

Bu konuya biraz geç biliyorum ama hala bir çözüm arıyorsanız, o zaman düşünmek isteyebilirsiniz, Evolved Caching . Warp ile aynı fiyat, ama:

  • Kurulumu ve yapılandırması çok hızlı ve kolaydır - tüm delme ve yapılandırma işlemleri yönetici içinden yapılır
  • Doğrudan Vernik ile entegre olur ve Vernik önbelleğinizi Magento içinden temizlemenizi ve ısıtmanızı sağlar
  • Hem Vernikte hem de kendi önbelleğinde 1.8 CE'de tanıtılan ön uç form_key ile çalışır.
  • Duyarlı destek ile çok aktif olarak geliştirilmiştir. Raporlamadan sonraki birkaç gün içinde hata düzeltmelerini yayınlamayı amaçlayan düzenli yeni sürümler
  • Her sürümle güncellenen kapsamlı belgelere sahiptir

Vernik ile kurulum basittir, sadece bir yönetici ayarını etkinleştirmeniz ve burada bulunan .vcl'yi kullanmanız gerekir . Ayrıca, Vernik yalnızca normal şekilde çerez olmadığında önbellek sunma ile sınırlı değilsiniz - çok yüksek bir önbellek isabet oranı elde edersiniz.


Oh vay, ilginç. Buna kesinlikle bakacağım. Buraya bir güncelleme göndermeliyim. Temel olarak, tam sayfa önbellek modülü yerine Varnish ile gitmeye karar verdim, ancak dinamik parçalar hakkında ne yapacağım konusunda biraz sıkıştım. Çoğunlukla ESI vs AJAX. Terebentin ile Vernik denedim, ama sepete malzeme eklerken sorun yaşadım - ben çekti. Sorunlar memcached oturum kaydetme işleyici ile ilgili olduğu ortaya çıktı, daha sonra buldum. Yani, yine de Vernik'i geri almak istiyorum, ancak tüm dinamik bölümlerimin iyi çalıştığından emin olmak için biraz zaman harcamam gerekiyor.
ThatSourDiesel

1
Elbette tamam. Turpentin'ın form_key'in ön uca dahil edilmesi nedeniyle henüz 1.8 CE ile çalıştığını düşünmüyorum - bu yüzden sepete ekleme ile ilgili sorunlarınız olabilirdi. Şahsen Ajax'ı ESI üzerinden öneriyorum çünkü ESI, sayfa teslim edilmeden önce Magento'ya bir istek göndermenizi gerektiriyor ve bu her zaman yavaş olacak. Bu gönderiye bakmak isteyebilirsiniz. fabrizio-branca.de/magento-varnish-ajax-vs-esi.html .
Jonathan Hussey

Fabrizio'nun blogunu seviyorum! Kesinlikle onun AJAX modülünü gördüm - bu benim son yorum AJAX bahsettiğim zaman bahsettiğim şeydi. Sahip olduğum sepeti sorununa eklemek, aslında düzeltmeyi başardığım memcached ile garip bir şeydi. Bununla birlikte, form_key'i devre dışı bırakmadıkça Turpentine 1.8 ile çalışmadığını söylese de, benim için iyi çalışıyor gibi görünüyordu. Ancak, bu noktada ESI'yı tam olarak anlamadım, bu yüzden uygulama ve test için daha fazla zaman harcayana kadar devre dışı bırakıldı. Son zamanlarda biraz iş kaçırdım - köprücük kemiği kırdı, ameliyat olmak zorunda kaldı.
ThatSourDiesel

BTW, Evolved Caching kendi modülünüz mü ?? Sadece meraktan - evreleme sunucumda denememe izin vermek ister misiniz? PM etki alanı adlarında tartışabiliriz ve bunun aslında üretim sunucusu değil, bir test sunucusu olduğunu doğrulayabilirsiniz.)
ThatSourDiesel

Umarım ameliyattan sonra iyileşirsiniz! Evet, modül şirketim tarafından geliştirildi ve evet, bir aşama / dev etki alanında denemenize izin vermekten mutluluk duyuyoruz. Mağazamızın sol sütununda bulunan müşteri hizmetleri e-posta adresini kullanarak bize bir e-posta bırakın, ben de alacağım - store.husseycoding.co.uk . Bir yan not olarak, iyi ki memcached sorunu sabit değer sepetine eklenti olabilir belki belirterek görünür onların biçimli anahtar da önbelleğe olarak önbelleğe sayfayı neden kullanıcı için 1.8 altında çalışmaya, ama yeni almak için çerezleri temizlemek session + form anahtarı ve muhtemelen başarısız olduğunu göreceksiniz.
Jonathan Hussey

1

Magento 1.8 yeni form anahtarıyla uyumlu bir FPC yazdık. Brim'in Tam Sayfa Önbelleği: http://ecommerce.brimllc.com/full-page-cache-magento.html

BOOMER, yığının aşağısında başlamak ve yukarı çıkmak için harika bir noktaya değiniyor. Bir FPC veya Vernik en son yaptığınız şey olmalıdır. Performans denetimleri yapıyoruz ve MySQL ve APC yapılandırmalarıyla ilgili sorunları tamamen kapatıyoruz. Innodb arabellek boyutları varsayılan olarak ayarlanmış ve veritabanı geçtikçe yol büyüdü.

Birlikte çalışmak için özel olarak tasarlanmadıysa, Vernik ile herhangi bir FPC'yi kullanmamanızı öneririz. Genel olarak, kod tabanınızla birlikte ayarlanmış ve yine de trafikle uğraşmak için mücadele eden bir avuç etli sunucuya sahip değilseniz Varnish'i önermiyoruz. Dinamik içeriklerin güncellenmesi, özellikle isteklerinizi Magento arka ucuyla sınırlamaya ve dolayısıyla yükü azaltmaya çalışırken Varnish ile zor olabilir. Bir veya iki web başlığınız varsa, kazançlar zaman ve komplikasyona değmeyebilir.

Çoğu durumda, iyi bir FPC, elbette sunucunuz ve kod tabanınız ayarlandıktan sonra, ihtiyacınız olan performansı elde edecektir. Bizim FPC ile seviye 1 önbellek 15ms alt üretim kez ve standart önbellek 100ms alt alabilirsiniz. Seviye 1 önbelleğimiz, kullanıcının giriş yapmadığı ve delik delme yapmadığı için sepetinde hiçbir şey olmadığı durumlarda kullanılır. Bu koşullardan herhangi biri yanlış olduğunda, standart önbellek tam delik delme desteği ile kullanılır.

Bizim FPC kolay delik delme vardır ve tüm standart Magento blokları ve sahip olabileceğiniz özel bloklar ile kutudan çıkar. Her şey yönetici paneli üzerinden yapılandırılabilir.

Onunla ölçekleme sorunları yoksa Redis ile yapışmasını tavsiye ederim. Etiket desteği vardır ve yavaş arka uç olarak dosya veya veritabanı ile memcached daha hızlıdır. Tutarlı etiketler ve temizlik istiyorsanız, birden çok web başlığınız olduğunda veritabanı ile memcached kullanmanız gerekir. Redis'in etiket desteği yerleşik olarak, bunun için endişelenmenize gerek yoktur. Oturumlarınız için Redis'i de kullanabilirsiniz.

Tüm FPC'ler için konuşabilirim, ancak bizimkiyle, nerede saklayacağınızı yönetici aracılığıyla yapılandırabilirsiniz. Varsayılan Magento önbellek arka ucunu kullanmayı veya Dosya, Veritabanı, APC, Redis, Memcache ve En İyileştirilmiş Dosya arka ucunu kullanmak için özel ayarlar belirlemeyi seçebilirsiniz.


Tarayıcıya 20ms altı teslimat için kefil olabilir. Sadece Magento FPC gerçek canlı dükkanda yapıldığını gördüm.
Melvyn

0

Doğru cevap yok. Bir mağaza 3s alt dinamik sayfa yükleri ve ideal olarak 1-2s dinamik sayfa yükleri olmalıdır, alt-saniye gerekli değildir ve öncelikle pazarlama odaklı bir istatistiktir. Apache'nin öğrenmesi ve gerçekleştirmesi zordur, Nginx'in öğrenmesi zordur ve gerçekleştirmesi kolaydır, birçok site Nginx'e taşınır, ancak Nginx ve Magento'ya dayanan yüksek kaliteli bir mimariye sahip olmak basit değildir.

Çok sunuculu Magento kümelerinin uygulanması zaten karmaşıktır ve doğru mimaride olmasa bile bakımı daha da zordur, normalde sıralama dahil olmak üzere her şeyin daha sorunsuz çalışmasını sağlayan daha büyük kümelerle çalışırız. Bunu, 1-2s dinamik sayfa yüklerini hedefleyen orta ila uzun vadeli kararlılık için küçük değişiklikler içeren standart kurulum yapılandırmasıyla yapıyoruz, bakım için her şeyi çok daha basit hale getiriyor.

Vernik bir FPC, diğerleri arasında bir CDN olabilir, ancak sizin durumunuzda bir FPC olarak düşünmek en iyisidir. Bir FPC sunucuda daha fazla ziyaretçiye izin verir ve Varnish'in böyle bir araç olduğu daha hızlı statik dağıtım sağlar, ancak dinamik içerik, stok kontrolü, fiyatlandırma da dahil olmak üzere çeşitli sorunlar vardır. Yanıt, işletmenizin nasıl yapılandırıldığına, verilerinizin nasıl yüklendiğine, ne sıklıkta, barındırma türünüze ve daha fazlasına, ziyaretçilere statik içerik sağlayarak işletmenizden etkilenir. FPC yapılandırması ile bunun çoğunu teknik olarak azaltabilirsiniz, ancak iş ortamını karmaşıklaştırır, işletme sahibi açısından dengeli bir yatırım getirisi üretmeyebilir.

FPC, alt 3'ler veya daha iyi dinamik yüklemeniz varsa son bölümdür, mimariniz ziyaretçi isteklerinde boncukla başa çıkabilir, çünkü bu sıralamayı etkiler, pazarlama ve tatil ani artışlarını emer ve sunucu mimarisinde karmaşıklık eklemek için bütçeye sahiptir - barındırma 0,5 olmalıdır Küçük işletmeler için gelirin% -1'i, bunların çoğu önemli ölçüde bu dolaylı iş sorunlarına neden olmaktadır.

Kesin bir cevap bulamamanızın nedeni, bu soruların, bir şirketin herkese açık olarak yayınlamak istemeyeceği bilgileri gerektiren nitel (iş tabanlı) oldukları için yanıt vermesinin aylar alması, sayfa yükleme hızlarının nicel (teknik tabanlı) olmasından kaynaklanmaktadır. ) Bu, herkese açık olarak yayınlanabilir, çözümü yapan ikisini nasıl birleştirirsiniz.


-2

Bu kullanabilirsiniz Magento sayfa önbelleği ihtiyaçlarınıza göre ve vernik benzer olacaktır. En büyük Magento mağazalarının çoğu tarafından kullanılır. Bazı özellikler:

  1. Vernik gibi, isteklerin% 90'ı için bir veritabanı bağlantısı kullanmaz. Sonuç olarak, son derece hızlı
  2. Ürün envanteri gibi şeyler değiştiğinde sayfaları otomatik olarak temizleme özelliğine sahiptir ve bu konuda çok iyidir
  3. Çok katmanlı bir önbellektir, böylece kullanıcılar giriş yaparken delik delmeyi de destekler (bu istekler veritabanı kullanımını gerektirir)

Çok seviyeli bir önbellek olarak, en yüksek trafik depoları için bile ölçeklendirilebilir ve SharkTank'taki (TV şovu) mağazalar gibi yoğun trafik alan birçok aşırı trafik sitesinde kullanılmıştır.


Bu, yazarın vernik veya FPC kullanılıp kullanılmayacağı sorusuna cevap vermez.
Steve Robbins

@extendware bir ürünün yazarı olduğunuzda açıklamanız gerekir. Değerli katkıyı memnuniyetle karşılıyoruz, ancak tamamen istenmeyen e-postaları kabul etmiyoruz.
philwinkle
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.