Waktu muat Halaman tidak konsisten

11

Saya sangat dekat untuk menyelesaikan proyek magento besar dan telah mengubah fokus saya untuk meningkatkan kecepatan magento. Sebagai semacam kata pengantar, saya lebih merupakan pengembang front-end yang mengerjakan proyek besar ini di dalam perusahaan, dan memikirkan berbagai hal seiring berjalannya waktu.

Saya memiliki pengembangan magento pada server virtual khusus Media Temple dengan ram 2GB. Baru-baru ini saya memiliki sebanyak 600 produk dan sekitar 25 atribut berbeda pada setiap produk (total sekitar 300 atribut unik) dan mungkin 50 kategori. Saya menghapus semua itu untuk memecahkan masalah kecepatan muat sekitar 15-an.

Namun waktu muat saya masih panjang dan tidak konsisten. Saya memuat ulang beranda saya dengan Firebug yang melaporkan 500 ms untuk tanggapan, dan saya segera memuat lagi dan melaporkan lebih dari 9. Apakah ini masalah server atau sesuatu dengan Magento sendiri? Bagaimana cara saya menguji sesuatu seperti itu?

andyjv
sumber

Jawaban:

11

Pertama-tama Anda harus memutuskan apa yang Anda uji, apakah hanya waktu render PHP - atau waktu muat halaman dunia nyata.

Dalam kedua skenario, menggunakan pembakar tidak akan dapat diandalkan - karena koneksi internet Anda sendiri bisa menjadi penghambat atau alasan untuk jitter.

PHP Render Time

Jika Anda benar-benar ingin melihat apakah waktu render PHP telah meningkat / berubah - maka cara paling akurat adalah dengan menggunakan output dari profiler Magento.

Masuk index.php, tanda komentar

Varien_Profiler::enable();

Lalu masuk

Admin> Sistem> Konfigurasi> Pengembang

Pastikan profiler diaktifkan.

Anda akan berakhir dengan output tabular di bagian bawah setiap halaman (front-end dan back-end) memecah waktu pemuatan halaman, diukur dari titik Mage::run()awal. Baris pertama akan menunjukkan total waktu render PHP (dalam Mage).

Ini akan menjadi angka Anda yang paling akurat dalam hal menetapkan jika perubahan PHP Anda membuat perbedaan waktu buka halaman, belum lagi, itu akan mengidentifikasi hambatan kinerja.

Waktu Pembuatan Web Server PHP

Jenis pengujian berikutnya adalah dengan memperhitungkan overhead server itu sendiri (tetapi bukan konektivitas last-mile). Jadi agar tes ini akurat dan tidak dipengaruhi oleh 'internet' itu sendiri - Anda harus menjalankannya di server web itu sendiri.

Kami menggunakan utilitas kami sendiri mage-perftest(informasi lebih lanjut dapat ditemukan di sini ) - yang dapat menguji waktu render PHP murni, waktu pemuatan halaman dunia nyata dan bahkan pengujian concurrency.

Untuk menguji hanya waktu render server web PHP, Anda akan menggunakan (ganti URL sesuai)

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

Tes ini akan memberikan rincian waktu pemuatan halaman (hanya untuk elemen PHP halaman, mengabaikan JS / CSS / Gambar). Outputnya terlihat seperti ini,

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%)

Waktu Render Server Web Dunia Nyata

Jenis tes terakhir adalah waktu yang diperlukan untuk mengunduh seluruh halaman (PHP + konten statis). Sekali lagi, Anda dapat menggunakannya mage-perftestuntuk melakukan ini, mis.

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

Hindari layanan pengujian online seperti wabah

Ada beberapa alat tes kecepatan online seperti GTMetrix, Pingdom dll. Ini tidak akan memberi Anda segala jenis hasil akurat untuk profil granular.

Mereka memiliki tempat dalam hal menguji konektivitas jaringan eksternal, tetapi sama sekali tidak berguna sebagai sarana untuk memeriksa kinerja PHP yang sebenarnya. Tetap berpegang pada pengujian di server / lokal untuk ini.

Catatan lain

Kami menulis artikel tentang pengujian jarak jauh dan mengapa Anda harus menghindarinya, http://www.sonassi.com/knowledge-base/magento-kb/why-siege-isnt-an-accurate-test-tool-for-magento- kinerja /

Menjalankan Magento di VPS adalah Ide yang Buruk. Yang lain mungkin tidak setuju - tetapi ini bukan lingkungan yang cocok untuk toko Magento karena beberapa alasan - dan kami telah menjawab BANYAK pertanyaan di sini, berikut adalah beberapa

Ben Lessani - Sonassi
sumber
Perftest luar biasa - apakah ada di Github sehingga saya bisa menggunakannya?
philwinkle
Aku kesulitan berjalan perftest, tapi profiler memberikan beberapa informasi menarik: mage::dispatch::routers_matchdan mage::dispatch::controller::action::predispatchtampaknya menjadi sebuah hambatan, meskipun saya tidak yakin apa solusinya ada ... pencarian tidak datang dengan banyak.
andyjv
Semakin banyak halaman yang saya buka sekaligus, semakin banyak waktu yang dihabiskan magento mage::dispatch::routers_match, terhitung 22 pada beban halaman 28-an. Pada beban yang sama, ada juga mage::dispatch::controller::action::predispatchdi 22-an, CORE::create_object_of::Mage_Core_Model_Session21-an dan Mage_Core_Model_Session_Abstract_Varien::start/start21-an. Saya yakin ada beberapa hal yang dilakukan orang tua / anak, tetapi dengan routers_matchmenjadi yang terpanjang, saya mengasumsikan bahwa orang tua dari 20 fungsi kedua lainnya
andyjv
Output profiler inklusif secara hierarkis. Yaitu. Ini menunjukkan total inklusif untuk semuanya berjalan dalam fungsi itu. Jadi Mageakan memakan waktu paling lama karena mencakup segala sesuatu, Routers_Matchpada dasarnya adalah fungsi berikutnya yang dipanggilnya, bahwa segala sesuatu yang lain dihasilkan. Ini bukan hambatan, tetapi sesuatu yang dipanggil (lihat lebih jauh ke bawah meja). Jangan membuka lebih dari 1 jendela jika Anda membuat profil - itu tidak akan mencapai apa pun.
Ben Lessani - Sonassi
Di bawah ini Routers_Matchada: DISPATCH EVENT:controller_action_predispatchpada 21.0710, dan OBSERVER: logpada 21.0565
andyjv
3

Kemungkinan besar ini adalah masalah server dan bukan masalah Magento. Tergantung pada jenis server yang Anda gunakan, Anda bisa mendapatkan waktu buka di bawah satu detik. Anda bahkan dapat menjalankan pengujian yang lebih canggih di sini: http://www.magespeedtest.com/ . Anda juga dapat meninjau kecepatan dari penyedia server lain di sana juga.

Saya akan merekomendasikan juga menggunakan laporan air terjun dari http://www.webpagetest.org/ dan melihat di mana tepatnya "kelambatan" Anda dapat berasal. Ini akan memecahnya menjadi beberapa bagian (seperti berapa lama untuk mengunduh setiap file css, js, dan gambar) yang dapat membantu Anda meningkatkan kecepatan.

Yang sedang berkata, bahkan jika Anda mengoptimalkan kode Magento, css, js, gambar, dan konten secara maksimal, server akan selalu menjadi masalah terbesar. Saya akan merekomendasikan menggunakan Penyedia Hosting Magento, karena mereka memiliki server mereka lebih baik disetel untuk membantu Magento. Secara pribadi, saya menggunakan Nexcess, tetapi yang lain saya telah mendengar hal-hal baik tentang adalah Sonassi Hosting, dan Peer1.

Ada beberapa artikel tentang cara meningkatkan kecepatan, saya akan merekomendasikan membaca halaman putih di situs web Magento.

Meskipun lebih diarahkan untuk Enterprise, Anda masih bisa mendapat manfaat dari banyak saran. Selain itu, pastikan Anda terus memperbarui Magento! Anda tidak boleh jatuh lebih dari dua versi dari rilis saat ini.

kab8609
sumber
1
Senang memiliki Anda di sini kab8609! :-)
Fabian Blechschmidt