Tutarsız Sayfa yükleme süreleri


11

Büyük bir magento projesini tamamlamaya çok yakınım ve odağımı magento'nun hızını artırmaya çevirdim. Bir tür önsöz olarak, daha çok bu büyük projeyi şirket içinde yapıyor ve giderken bir şeyler buluyorum.

2GB koç içeren bir Media Temple adanmış sanal sunucusunda geliştirme efendim var. Son zamanlarda her bir üründe 600 kadar ürün ve yaklaşık 25 farklı özellik (toplam 300 benzersiz özellik) ve belki de 50 kategori vardı. 15 saniye civarında yükleme hızlarında sorun gidermek için bunların hepsini sildim.

Ancak yükleme sürelerim hala uzun ve tutarsız. Ana sayfamı yanıt için 500 ms bildiren Firebug ile yeniden yüklüyorum ve hemen tekrar yüklüyorum ve 9 saniyeden fazla rapor veriyor. Bu bir sunucu sorunu mu yoksa Magento'nun kendisiyle ilgili bir şey mi? Böyle bir şeyi test etmeye nasıl gidebilirim?

Yanıtlar:


11

Önce ne test ettiğine karar vermelisin, sadece PHP render zamanı mı yoksa gerçek dünya sayfa yükleme zamanı mı?

Her iki durumda da, internet bağlantınızın kendisi darboğaz veya titreme nedeni olabileceğinden, kundakçı kullanmak güvenilir olmayacaktır.

PHP Oluşturma Zamanı

Sadece PHP render süresinin iyileşip iyileşmediğini görmek istiyorsanız - en doğru yol Magento profilerden gelen çıktıyı kullanmaktır.

İçinde index.php, rahatsız

Varien_Profiler::enable();

Daha sonra

Yönetici> Sistem> Yapılandırma> Geliştirici

Profil oluşturucunun etkin olduğundan emin olun.

Her sayfanın alt kısmında (ön uç ve arka uç) Mage::run()başlangıç noktasından ölçülen sayfa yükleme süresini bölen bir tablo çıktısı elde edersiniz . İlk satır, toplam PHP oluşturma süresini (Mage içinde) gösterecektir.

Bu, PHP değişikliklerinizin sayfa yükleme süresinde bir fark yaratıp yaratmadığını belirleme açısından en doğru rakamınız olacak, herhangi bir performans darboğazını belirleyecektir.

PHP Web Sunucusu Oluşturma Zamanı

Bir sonraki test türü, web sunucusunun genel giderlerini hesaba katmaktır (ancak son mil bağlantısı değil). Bu testin doğru olması ve 'internet'in kendisinden etkilenmemesi için - web sunucusunun kendisinde çalıştırmalısınız.

Saf PHP render zamanını, gerçek dünya sayfa yükleme süresini ve hatta eşzamanlılık testini test mage-perftestedebilen kendi yardımcı programımızı (daha fazla bilgi burada bulunabilir ) kullanırız.

Yalnızca PHP web sunucusunun oluşturma süresini test etmek için şunu kullanırsınız (URL'yi buna göre değiştirin)

./mage-perftest -u me-s1.sonassihosting.com -b

Bu test, sayfa yükleme süresinin dökümünü verir (yalnızca sayfanın PHP öğesi için, herhangi bir JS / CSS / Resim yoksayılır). Çıktı şöyle görünür,

Test Summary
============
Total files:              1
Total downloaded:         4K
Avg. page weight:         4.00K

Total time:               0.035s
Min response:             0.035s
Max response:             0.035s
Avg. page response:       0.03s

Concurrency/Repeats:      1
Transactions/s            28.57
Test URL:                 me-s1.sonassihosting.com
Success rate:             1/1 (100.00%)

Real World Web Server Oluşturma Zamanı

Son test türü, sayfanın tamamını indirmek için geçen süredir (PHP + statik içerik). Yine, bunu mage-perftestyapmak için kullanabilirsiniz , örn.

./mage-perftest -u me-s1.sonassihosting.com

Veba gibi çevrimiçi test hizmetlerinden kaçının

GTMetrix, Pingdom vb.Gibi bazı çevrimiçi hız test araçları vardır. Bunlar, ayrıntılı profil oluşturma için size herhangi bir doğru sonuç vermeyecektir.

Harici ağ bağlantısını test etme konusunda yerlerine sahiptirler, ancak gerçek PHP performansını kontrol etmenin bir yolu olarak tamamen işe yaramazlar. Bunun için sunucu üzerinde / yerel testlere bağlı kalın.

Diğer notlar

Uzaktan test hakkında bir makale yazdık ve neden bundan kaçınmanız gerektiğini, http://www.sonassi.com/knowledge-base/magento-kb/why-siege-isnt-an-accurate-test-tool-for-magento- verim/

Magento'yu bir VPS'de çalıştırmak Kötü Bir Fikirdir. Diğerleri buna katılmayabilir - ancak bir dizi nedenden ötürü bir Magento mağazası için uygun bir ortam değildir - ve bu damardan bir sürü soruya cevap verdik, işte birkaç tane


Mükemmellik harika - Github'da mı yani çatallayabilir miyim?
philwinkle

Mükemmel koşarken sorun yaşadım, ancak profiler bazı ilginç bilgiler verdi: mage::dispatch::routers_matchve bir darboğaz mage::dispatch::controller::action::predispatchgibi görünüyor , ancak çözümün ne olduğundan emin değilim ... arama çok fazla gelmiyor.
andyjv

Bir seferde ne kadar fazla sayfa açarsam mage::dispatch::routers_match, macenta o kadar fazla zaman harcıyor, 28'lerin sayfa yüklemesinde 22'lere karşılık geliyor. Aynı yükte, mage::dispatch::controller::action::predispatch22'lerde, CORE::create_object_of::Mage_Core_Model_Session21'lerde ve Mage_Core_Model_Session_Abstract_Varien::start/start21'lerde de vardır. Eminim bazı ebeveyn / çocuk olayı oluyor, ama routers_matchen uzun olmakla birlikte , diğer 20 saniyelik fonksiyonların ebeveyni olduğunu varsayıyorum
andyjv

Profil oluşturucu çıktısı hiyerarşik olarak kapsayıcıdır. Yani. Bu işlev içinde çalışan her şey için kapsayıcı bir toplam gösterir. Yani Mageher şeyi içerdiği için en uzun sürecek Routers_Match, temelde çağırdığı bir sonraki işlev, her şeyin ortaya çıktığı. Onun değil darboğaz, ama bir şey (masaya daha aşağı bakmak) çağırıyor. Profil oluşturuyorsanız 1'den fazla pencere açmayın - hiçbir şey elde edemezsiniz.
Ben Lessani - Sonassi

Aşağıda Routers_Match: DISPATCH EVENT:controller_action_predispatch21.0710'da ve OBSERVER: log21.0565'te
andyjv

3

Bu büyük olasılıkla bir Magento sorunu değil, bir sunucu sorunudur. Ne tür bir sunucu kullandığınıza bağlı olarak, bir saniyenin altında bir yükleme süresi elde edebilirsiniz. Burada daha karmaşık testler de yapabilirsiniz: http://www.magespeedtest.com/ . Ayrıca diğer sunucu sağlayıcıların hızlarını da inceleyebilirsiniz.

Ayrıca http://www.webpagetest.org/ adresinden gelen şelale raporunu kullanmanızı ve "yavaşlığınızın" tam olarak nereden gelebileceğini görmenizi tavsiye ederim . Hızını artırmanıza yardımcı olabilecek parçalara (her css, js ve görüntü dosyasını indirmenin ne kadar sürdüğü gibi) bölünür.

Bununla birlikte, Magento kodunu, css, js, görüntüleri ve içeriği sonuna kadar optimize etseniz bile, sunucu her zaman en büyük sorun olacaktır. Sunucuları Magento yardımcı olmak için daha ince ayarlanmış gibi bir Magento Hosting Provider kullanmanızı tavsiye ederim. Şahsen, Nexcess kullanıyorum, ama iyi şeyler duyduğum diğerleri Sonassi Hosting ve Peer1.

Hızın nasıl artırılacağı hakkında birkaç makale var, Magento web sitesindeki beyaz sayfaları okumanızı tavsiye ederim.

Enterprise'a yönelik olmakla birlikte, yine de birçok tavsiyeden yararlanabilirsiniz. Ayrıca, Magento'yu güncel tuttuğunuzdan emin olun! Mevcut sürümden iki sürümden daha fazla düşmemelisiniz.


1
Burada olman güzeldi kab8609! :-)
Fabian Blechschmidt
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.