Magento TTFB'nizi Geliştirmek için 5 Temel İpucu
Yayınlanan: 2019-01-08Bu, Vasili Nikolaev'in konuk yazısıdır.
İlk bayt zamanı (TTFB), bir web sitesinin en önemli hız ölçümlerinden biridir. Bir kullanıcının Magento mağaza URL'nizi girmesinden sonra ne kadar zaman geçeceğini ve 1 bayt kadar küçük bile olsa herhangi bir yanıt aldıkları zamanı gösterir (dolayısıyla ad, " ilk bayta kadar geçen süre").
İlk bayt zamanı hem insanlar (beklemekten hoşlanmazlar) hem de arama motoru robotları (Google yavaş web sitelerinden nefret eder ve onları daha düşük sıralar) için hayati önem taşır. MageWorx).
Ancak aynı zamanda, Google'ın konuşan kafalarından biri olan John Mueller'den, Google'ın sıralamalar için TTFB kullanmadığına dair ikna edici kanıtlar var:
Bu yüzden tavsiyemiz, SEO için TTFB'ye çok fazla takılmamak, bunun yerine kullanıcı deneyimine ve mağaza performansına odaklanmak.
TTFB neden tam sayfa yüklemesinden daha önemlidir (" son bayta kalan süre" olarak adlandırılır)? İlk baytı ne kadar erken yüklerseniz, kullanıcılar içeriğinizi o kadar hızlı okumaya başlar. Sayfadaki her resmi anında görememeleri önemli değil. Web sunucunuz içeriğin geri kalanını yüklemekle meşgulken kullanıcılara yapacak bir şeyler sunmak daha önemlidir.
İçindekiler
- 1. Onları Ortadan Kaldırmak İçin Darboğazlarınızı Anlayın
- İyi bir TTFB nedir?
- 2. Daha Uygun Bir Veritabanı Motoruna Geçin
- 3. Sunucu Kurulumunu Mevcut Trafik İhtiyaçlarınızla Eşleştirin
- 4. Daha İyi Bir Önbelleğe Alma Çözümü Kurun
- 5. Yararsız Uzantılardan Kurtulun
- Bonus İpucu: Mağaza ve Müşteri Günlüğü Ayarlarını İnceleyin
- Performans için Sürekli Bir Savaş
1. Onları Ortadan Kaldırmak İçin Darboğazlarınızı Anlayın
İyi bir TTFB nedir?
Google, 200 ms'nin altında bir TTFB'nin hedef olduğunu belirtir. 200 ms'nin altında arama motoru sizi en üst sıralarda sıralayacaktır. Bu değerin üzerine çıktığınızda Google web sitenize ceza uygular. 600 ms veya üzeri, Google'ın kendi TTFB testini bile geçemeyeceğiniz anlamına gelir.
TTFB'nizi etkileyecek birçok faktör var. Belirli bir sırada değil:
- web sunucusu yapılandırması ve kaynakları,
- ad sunucusu çözümleme hızı,
- sayfa içi kod yürütme süreleri,
- uygulanan arka uç önbelleğe alma çözümleri,
- ağ varsayımı.
TTFB değerinizi üçüncü taraf bir hizmetle veya Google TTFB testini kullanarak kontrol edin. Ayrıca, mağazanızın mobil kullanıcılar için nasıl yüklendiğine dair benzersiz bir bakış açısı elde etmek için sonuçlarınızı popüler web siteleriyle veya buradaki rekabetinizle karşılaştırabilirsiniz.
Bir başka harika tanılama aracı da Magento 2 Profiler'dır . Bununla, her sayfa isteğini kolayca görselleştirmesi ve analiz etmesi hızlı olan daha küçük bloklara bölebilirsiniz.
Tabloda 2 önemli değere özellikle dikkat edin, Zaman ve Sayı. Zaman kendini açıklayıcıdır. Kullanıcı isteği ile sunucu yanıtı arasındaki gerçek gecikmedir. Cnt satırı, çıktıyı oluşturmadan önce bu öğenin kaç kez çağrıldığına karşılık gelir.
Veritabanı sorgularını analiz etmek için Magento 2 varsayılan profil oluşturucu ile birlikte Veritabanı Profil Oluşturucu'yu kullanmaya değer.
Bu, atmanız gereken ilk adımdır: Magento Profiler'ı etkinleştirin ve TTFB ile en büyük sorunları olan sayfalara bakın. Varsayılan profil oluşturucuyu kullanabilmenize rağmen, Profiler SQL'i kurmanızı öneririz. Ücretsizdir ve oturum başına sorgu sayısına uygun bir genel bakış sunar.
Profiler, hangi bölümlerin sizi aşağı sürüklediğini hemen görebilmeniz için tüm istekleri daha küçük parçalara böler.
2. Daha Uygun Bir Veritabanı Motoruna Geçin
Magento 2 mağaza veritabanı, verimsiz, yavaş veya Magento'yu işlemek için en iyi seçenek olmayan bir depolama motoru kullanıyorsa, en büyük performans darboğazı haline gelebilir.
Bu neden önemli? MySQL için çok çeşitli depolama motorları seçeneği vardır. Resmi MySQL belgelerinde desteklenen en az 10 çözüm saydık ve doğada daha da fazlası var.
Magento'yu varsayılan MyISAM MySQL motoruyla kullanabilirsiniz, ancak MariaDB Ari bir depolama motoru veya Percona XtraDB motoru gibi alternatif veritabanı motorları, mağazanızı varsayılan kuruluma kıyasla daha kararlı ve (bazen) daha hızlı hale getirebilir.
Örneğin, Aria motoru, Magento'nun depolama motorunu çok sayıda geçici tablo kullanmaya zorladığı durumlarda daha akıllı bir yaklaşım kullanır.
Percona , zaman içinde veritabanı sorgularını hızlandırmak için bir dizi performans ince ayarı entegre eden başka bir MySQL çatalıdır. MyISAM ile karşılaştırıldığında, çok sayıda paralel sorgu ile çok daha hızlı çalışır ve işlem işleme konusunda uzmanlaşmıştır.
Veritabanı optimizasyonu için en iyi öneri, ihtiyaçlarınızı dikkatlice incelemek ve size en uygun motoru seçmek olsa da, herkes için faydalı olacak birkaç ipucumuz var:
- mağaza araması için varsayılan MySQL'den kaçının. Web sitenizdeki tüm arama sorgularını hızlandırmak için Elasticsearch'ü kurun,
- sizin için en uygun veritabanı motorunu seçin.
3. Sunucu Kurulumunu Mevcut Trafik İhtiyaçlarınızla Eşleştirin
Altyapıyı ucuza almak iyi bir fikir değil. Zamanla, istikrarlı bir şekilde büyüyen bir işletme daha fazla müşteri, daha fazla işlem ve daha fazla sipariş görecek. Bu nedenle, rastgele kullanım artışlarına ve olay kaynaklı yaya trafiğine uyum sağlamak için kurulumunuzu %80 kapasitede tutmanız sağlıklıdır. Bu %20, her durumda makul bir performans seviyesini korumak için uzun bir yol kat edebilir.
Tuzuna değecek bir barındırma ekibi, sorunsuz çalışmanız için hangi sistem gereksinimlerine ihtiyacınız olduğunu size söyleyecektir. Ancak belirli bir süre içinde hızla büyüdüyseniz, yükseltmek için bir yol haritası çizmek sizin sorumluluğunuzdadır.
Magento mağazanızda sistem gereksinimlerinizi büyük ölçüde etkileyecek bir dizi kritik nokta vardır:
- mağaza boyutu (mağaza görüntüleme sayısı),
- katalogdaki kategoriler ve SKU'lar (nitelikler ve nitelik setleri ile),
- ortalama trafik sayıları (ortalama sayfa görüntülemeleri ve geçmişteki zirveler),
- günlük işlemler (dijital indirmeler, ödemeler ve benzer işlemler).
Genel olarak, ortalama trafiğiniz ne kadar CPU gücüne ihtiyacınız olduğunu doğrudan etkiler. Bu nedenle, optimum CPU kurulumunu bulduktan sonra, dengeli bir web sunucusu profili oluşturmak için RAM'inizi CPU gereksinimlerinizle eşleştirin.
Veritabanı depolama boyutu mevcut RAM'inize bağlıdır, bu nedenle mevcut tüm ihtiyaçları karşılayacak kadarını almalısınız. Biraz nefes alma alanı için de bir performans yastığı oluşturun. Amacınız, ara sıra meydana gelen trafik artışlarıyla başa çıkmak için her zaman en az %20-25 yedek CPU ve RAM tutmaktır.
4. Daha İyi Bir Önbelleğe Alma Çözümü Kurun
Web sitesi önbelleğe alma, patates kızartmasının icadından sonraki en iyi şeydir. Sunucu önbelleği, web sitesinin çabukluğunu artırır ve çok daha hızlı hissettirir. Önbelleğe alma, sık kullanılan verileri SSD veya sabit sürücüden RAM'e taşıyarak çalışır.
HDD'lerin 200 MB/sn'ye kadar verileri ve SSD'lerin 3200'e kadar sırayla okuyabildiği durumlarda, DRAM modülleri 20 GB/sn'ye kadar gidebilir. Bu bize x10 farkını veya en az bir büyüklük sırasını verir.
Hem Redis hem de Varnish , Magento mağazaları için en popüler yükseltmelerden biridir. Magento 2 için önerilen bir önbelleğe alma seçeneğidir. Her iki çözüm de Magento 1 ile harika çalışır.
Vernik yapılandırması zor bir araçtır, ancak doğru yapıldığında 100-200 ms'de TTFB değerleri sunar. Tam sayfa önbellek yapılandırmaları için TTFB, 250 ms içinde değişecektir.
Varnish'in bir başka belirgin avantajı da daha fazla web sayfasında çalışmasıdır. FPC, üzerinde çok fazla dinamik içerik bulunan sayfalar için çalışmazken, Varnish bu zorlu kullanım durumlarında bile daha iyi performans sunar.
5. Yararsız Uzantılardan Kurtulun
Dürüst olmak gerekirse, kullanılmayan uzantıları devre dışı bırakmak, herhangi bir Magento 2 mağazası için 1 numaralı ipucudur, ancak çoğu zaman gözden kaçar. Web sitenizde çalışan her uzantı, kaynaklarınızın bir kısmını tüketecektir. Kötü yapılandırılmışlarsa, TTFB'nizi de yavaşlatabilirler.
Unutmayın: sunucunun kullanıcıya herhangi bir geri bildirim göndermeden önce bu kodu çalıştırması gerekir.
Uzantı listenizi temizlemek de Magento'yu hızlandıracaktır. Hiçbirini devre dışı bırakamasanız bile, site performansınızı kesinlikle daha iyi hale getirecek hata düzeltmelerinden ve optimizasyonlardan yararlanmak için hem Magento mağazanızı hem de üçüncü taraf uzantılarınızı güncel tutun.
Bonus İpucu: Mağaza ve Müşteri Günlüğü Ayarlarını İnceleyin
Magento müşteri günlüğünü kapattığınızdan emin olun. Bu, veritabanı sorgularına harcanan süreyi azaltmanıza yardımcı olacaktır. Müşteri günlüğü nispeten küçük bir etkinlik olduğu için bu çok büyük bir etki değildir. Performans artışı, şu anda mağazanızı ziyaret eden müşteri sayısına bağlı olacaktır.
Mağaza günlüğünü kapatmanızı önermiyoruz. Magento sorun gidermede yardımcı olan değerli bir araçtır. Ancak, mağaza günlüklerinin sunucu zamanını almasına izin vermek yerine, bunları Papertrail gibi bir üçüncü taraf hizmetine taşıyabilirsiniz.
Performans için Sürekli Bir Savaş
Hiçbir iki Magento mağazası aynı değildir. Her biri, vitrinlerini hız için optimize etmede farklı zorluklarla karşılaşacak. Bu, özellikle çok sayıda karmaşık üçüncü taraf uzantısına, büyük veritabanlarına ve birden çok mağazaya sahip eski (ve daha büyük) Magento web siteleri için geçerli olabilir.
Performans için bu savaşı hiçbir zaman "kazanamayacak" olsak da, ortak hedefimiz Magento mağazalarını tüm e-ticaret web siteleri arasında hız, kullanıcı deneyimi ve güvenlik açısından sınıfının en iyisi yapmaktır.
Vasili Nikolaev, mağaza sahiplerinin hayatını biraz daha kolaylaştıracak en etkili ipuçlarını bulmak için sürekli bir hazine avına çıkıyor. Onun için zorlu bir soruna harika bir çözüm bulmaktan daha tatmin edici bir şey yoktur.