Biz sadece - hiç. Hiç. Bunu tekrar tekrar söyleyeceğiz ama
Önbellek! = Performans
Siteniz ihtiyacı (gerçeği veya Vernik) FPC katkısı olmadan hızlı olmak. Her zaman içeriğin hazırlanmadığı bir zaman olacaktır (yukarıdaki senaryonuz).
Yüksüz bir mağazada, FPC ile sayfa yükleme süreleri FPC olmayanlardan çok daha etkileyici olmamalıdır; Magento, < 400ms
standart önbelleklerde (kategori / ürün / arama sayfalarında) sayfa yükleme sürelerini oldukça mutlu bir şekilde yapabilmektedir . FPC bunu aşağıya < 80ms
çekecektir - ancak uyarılarla birlikte gelir.
- Stok / fiyat bilgileri, geçersiz kılma veya TTL süresinin dolmasına kadar güncel değil
Yeni öğeler / daha alakalı arama, geçersiz kılma veya TTL süresinin dolmasına kadar güncel değil
vb.
FPC'ye (veya Verniklere) güvenmek neden kötü bir fikir
Önbelleklerin manuel olarak hazırlandığından emin olmak istiyorsanız, bunun birkaç nedeni olabilir
- Önbellekleri kullanıma hazır tutmak için yeterli doğal ayakınız yok (bkz. 'FPC'nin yararlı olduğu yerler')
- Siteniz onlarsız çok yavaş
Her şeyi önbellekleyemezsin
Sadece 5 kategori, iç içe yerleştirilmiş 2 seviye derinliği, 5 filtrelenebilir özellik, her biri 5 özellik seçeneği ve 1000 ürün içeren bir mağaza alırsanız; bu birçok olası kombinasyon.
25 seçenek, arka arkaya 5 kereye kadar seçim - İstatistikçi değilim , ama bunun farkındayım ... (özellik seçeneklerinin sayısının tamamen azalmadığı varsayılarak)
25 possible URLs on the first selection
20 possible URLs on the second selection
15 possible URLs on the third selection
10 possible URLs on the fourth selection
5 possible URLs on the fifth selection
5^5 = 3,125 possible combinations (for top level categories)
5^4 = 625 possible combinations (for 2nd level categories)
Tamam, yukarıdaki tahmin, tahmin edeceğim gibi, 3 tıklamayla - müşterinin ürünlerini bulması için mevcut ürünlerin sayısı yeterince azalırdı. Öyleyse bile ...
25 possible URLs on the first selection
10 possible URLs on the second selection
3 possible URLs on the third selection
5^3 = 125 possible URL combinations
Ardından, bunu 5 kategoriye göre, bu 625 URL'dir. Bu aşamada, küçük bir katalogdan bahsediyoruz ve tüm ürün URL'lerini tamamen görmezden geliyoruz.
Ayrıca is_anchor
, kategorileri açıkken iç içe geçmiş olsaydınız , katlanarak artacağı konusunda faktör oluşturmayız .
Böylece, bu sayfa hacmini taramak için - ya sayfa yükleme sürelerinizin başlangıçta iyi ve düşük olmasını ummanız gerekir, böylece hızlı ve hafif bir işlemdir (böylece taramanın amacını yenersiniz) - ya da TTL'nin süresi dolmadan önce tamamlanması için yeterli zaman.
Sayfalarınız 0.4s sayfa yükleme süresine sahipse ve 8 çekirdekli bir CPU'nuz varsa - o zaman ...
625 * 0.4 = 250 / 8 = 31 seconds
0,5 dakika, kötü değil - ancak 2s sayfa yükleme süreniz olduğunu düşünelim
625 * 2 = 1250 / 8 = 156 seconds
Ancak mümkün olan maksimum senaryoyu aldıysanız
3,750 * 2 = 7,500 / 8 = 937 seconds ~ 15 minutes
Bu, üretim sunucunuz, 15 dakika boyunca% 100 CPU yükü altında. Tarama hızını istediğiniz TTL ile orantılı olarak azaltabilirsiniz.
İçeriğin 3600s TTL'ye sahip olmasını istiyorsanız, tarama 4 kat daha yavaş olabilir - yani. sadece% 25 CPU taramaya adanmış. Kategori içeriğini hazır bulundurmak için çok fazla kaynak var - bu aşamada ürünler, arama terimleri veya ek mağaza görünümlerinde bile faktör oluşturmadık
Aslında, yalnızca catalog_url_rewrites
tablodaki kombinasyonların boyutuna bakmak (katmanlı gezinme parametrelerinde bile faktörü hesaba katmaz), kaç tane URL'yi taramanız gerektiğine dair bir fikir verecektir.
Her mağaza kesinlikle farklı olacak, ama eve vurmaya çalıştığım şey, siteyi FPC'yi prime etmek için taramanın pratik olmaması. Sadece mağazanızın hızlı başlamasından emin olun .
FPC'nin yararlı olduğu yerler
FPC'nin faydaları devreye girdiğinde, çok yüksek bir trafik seviyesine sahip olduğunuz ve önbelleklerin doğal olarak ve sürekli olarak sadece ayak basması ile astarlandığı ağır yüklü bir mağazada.
Daha sonra FPC, yaygın olarak talep edilen içerik üzerindeki altyapı ek yüklerini azaltarak devreye girerek Magento arka ucuna yapılan tekrarlanan çağrıları azaltır.
Bu nedenle, FPC'nin çok yüksek trafik düzeylerine sahip olduğunuzda (sayfa yükleme süresini azaltmak için değil), ancak kaynak kullanımını azaltmak için mükemmel olduğunu gördük.
Kimin umrunda, hala taramak istiyorum
O zaman iki seçeneğiniz var
- Şablondan tarama (ör. Site haritası)
- Bağlantıları sayfa sayfa ayıklayın ve her birini tarayın
Ve bunların her ikisini de yapmak için birçok yardımcı program var, bunlar biliyorum
- mage-PERFTEST
- HTTrack
- nutch
- Sphider
- Crawler4j
Mage-Perftest Kullanımı
Mage-Perftest ile mağazanızı kolayca tarayabilirsiniz, önce indirin
wget http://sys.sonassi.com/mage-perftest (64bit) OR
wget http://sys.sonassi.com/mage-perftest-i386 (32bit)
chmod +x http://sys.sonassi.com/mage-perftest*
Ardından, Magento site haritasını kullanarak tarama işlemini tanımlayın (URL'lerin <loc></loc>
etiketlere sarılması şartıyla, URL'lerin bir site haritasını oluşturarak bunu özelleştirebilirsiniz ). Aşağıdaki komut, site haritası dosyasındaki tüm URL'leri okuyacak, ardından URL'leri 1440 dakika (1 gün) içinde tarayacak (yalnızca PHP). Sunucu% 20 CPU'yu veya yük ortalaması 2'yi aşarsa tarama geçici olarak duraklar.
./mage-perftest -u www.example.com -s www.example.com/sitemap.xml -r auto -b -d 1440 -z -a 20 -l 2
1 gün içinde taranan 1000 URL'niz varsa, bu yaklaşık olarak. 86 saniyede 1 istek ~ 0.011 RPS hedefi