Jadi saya agak bingung ketika meneliti tentang Caching Halaman Penuh untuk Edisi Komunitas 1.8. Saya sudah mengimplementasikan Two Level Redis Cache, CDN, mengatur my.cnf MySQL untuk kinerja maksimal (tentunya DB berada di server terpisah), dan saya memiliki 2 server hosting toko kami di belakang load balancer. Saya mengatakan bahwa untuk menunjukkan bahwa saya tidak segera melompat untuk FPC sebelum melakukan tweak kinerja awal.
Saya belum pernah menggunakan Varnish sebelumnya di situs apa pun, apalagi Magento, dan saya juga belum pernah memasang FPC di Magento. Saya memahami Varnish sebagai proxy yang bertindak sebagai persilangan antara CDN dan cache halaman sendiri, mengirimkan data ke browser sebelum permintaan bahkan sampai ke server web. Dan menurut pemahaman saya, Modul FPC membuat cache secara lokal yang disajikan oleh server web itu sendiri. Saya tahu bahwa untuk kedua pengaturan, Anda perlu melakukan beberapa "Lubang Punching" untuk mendapatkan konten dinamis melalui browser (meskipun tekniknya berbeda, antara menggunakan modul atau menggunakan Varnish). Tolong koreksi saya jika saya salah paham apa pun di sini.
Sampai sekarang, saya menganggap mereka sebagai dua entitas terpisah yang dapat Anda implementasikan untuk membantu situs Anda, tetapi sekarang sesuatu yang saya baca tampaknya menyiratkan sebaliknya. Rencana asli saya adalah untuk membeli modul " Warp Advanced Full Page Cache " untuk Magento (Sebelumnya "Tiny Brick Lightspeed FPC", saya percaya) karena tampaknya menjadi yang paling populer, jika sentuhan pada sisi harga (tapi, terus terang , $ 350 tidak banyak untuk perusahaan kami, terutama untuk apa yang dapat dilakukannya). Saya dan 2 rekan pengembang saya berencana untuk belajar menerapkannya dengan benar dan sepenuhnya dalam kebiasaan kami sendiri, tema buatan sendiri untuk memaksimalkan apa yang bisa kami dapatkan darinya. Setelah itu selesai, di beberapa titik di jalan, saya pikir saya akan melihat ke dalam menerapkan Varnish juga - tetapi, seperti yang saya katakan sebelumnya, saya mengerti mereka terpisah.
Namun sekarang, saya mulai menemukan ekstensi seperti PageCache ini Didukung oleh Varnish yang gratis, atau Vortex Cache ini Didukung oleh Varnish Cache yang hampir $ 800 USD, yaitu modul Cache Halaman Penuh Magento yang bekerja langsung dengan Varnish.
Pertanyaan saya kepada Anda, tumpukan pertukaran, adalah bagaimana saya harus melihat FPC dan Varnish? Sebagai entitas yang terpisah? Jika demikian, apakah mereka saling eksklusif? Apakah mereka dua sisi dari koin yang sama yang harus saya terapkan bersama? Atau apakah mereka serupa tetapi tidak eksklusif atau inklusif satu sama lain?
Bisakah saya menggunakan Warp Advanced FPC yang saya sebutkan di atas dengan Varnish? Haruskah saya menggunakannya dengan Varnish? Atau lebih baik menggunakan FPC yang berbeda jika saya berencana menggunakan Varnish? ATAU lebih jauh lagi, adakah FPC yang begitu bagus sehingga saya tidak membutuhkan Varnish? Atau sebaliknya, haruskah saya menggunakan Varnish dan membuang ide FPC?
Maaf untuk dinding teks, tetapi saya telah melihat banyak artikel, blog, dan posting forum, dan saya belum dapat menemukan jawaban yang pasti untuk pertanyaan-pertanyaan itu. Saya sangat menghargai bantuan dan masukan Anda dalam hal ini =)
Oh dan terakhir, pertanyaan singkat tentang Varnish dan webservers. Saat ini saya menggunakan setup stack Apache LAMP normal, tetapi untuk sementara sekarang saya telah melihat orang-orang rave tentang menggunakan Nginx dengan Magento. Saya telah melakukan beberapa tes sendiri, stress dan load test, dan tampaknya itu pasti dapat bekerja sedikit lebih baik dalam kondisi yang tepat. Karena itu, saya sedang mempertimbangkan untuk beralih di beberapa titik dalam waktu dekat. Apakah ini akan mempengaruhi keinginan dan keputusan saya untuk menggunakan FPC dan / atau Varnish?
Terima kasih!!!
EDIT: Oh! Dan satu pertanyaan lagi - Karena saya memiliki dua server yang meng-hosting situs saya di belakang load balancer (yang juga merupakan pengaturan yang dapat ditingkatkan secara horizontal jika diperlukan), saya menggunakan penuh Redis dan Memcached yang dihosting di server terpisah dari server. Web dan DB untuk sesi saya dan setiap tingkat dari Cache Dua Tingkat Magento (yah, Zend). Saya berasumsi FPC akan menyimpan data itu di salah satu dari mereka ke sistem? Apakah saya perlu memiliki ekstensi khusus untuk menyimpannya di sana atau apakah mereka semua melakukannya? Dan sementara saya berasumsi tidak, apakah ini akan mempengaruhi Varnish? Terima kasih lagi!!
sumber
Jawaban:
Ada dua hal sulit dalam ilmu komputer:
Lubang meninju masuk dalam kategori # 2 :)
Umum
Pendekatan terbaik adalah mulai dari titik terendah tumpukan dan mengoptimalkan hingga bagian depan Magento.
Basis Data dan Sistem File
Harus selalu menjadi area pertama yang menjadi fokus. Karena. I / O.
MyTop adalah skrip perl berbasis Linux yang berguna yang akan meniru perintah 'top' Linux dan memberi Anda wawasan tentang keadaan instance MySQL Anda.
Htop adalah top yang lebih kuat , Fitur strace dapat membantu menentukan seluk beluk suatu proses untuk menemukan kemacetan potensial.
Iotop adalah alat lain yang perlu dipertimbangkan untuk memantau I / O.
Skrip utilitas berguna lainnya seperti mysqltuner.pl dan primer tuning mysql dapat menawarkan wawasan tentang variabel runtime MySQL Anda dan menawarkan saran untuk membantu. Ingatlah bahwa ini dimaksudkan sebagai panduan karena pendekatan terbaik selalu berupa evaluasi persyaratan dan penyesuaian berdasarkan data yang diketahui. Melakukan hal itu secara buta dapat menyebabkan lebih banyak kerusakan di kali daripada kebaikan. Dan secara prematur menjalankan ini tanpa setidaknya 24 jam variabel runtime mysql dapat menawarkan saran yang buruk.
Perlu diingat Percona , MariaDB dan standar MySQL harus bekerja dengan semua hal di atas. Menguntungkan Percona sebagai garpu MySQL, karena Magento begitu berat di InnoDB dan XtraDB menawarkan banyak alat dan perangkat tambahan untuk mesin db.
Apache atau Nginx
Masih menggunakan Apache karena telah melayani banyak orang lain dengan baik, termasuk saya. Saya telah menggunakan dan mengkonfigurasi Nginx juga. Meskipun menawarkan beberapa keuntungan, ada kurva belajar. Walaupun keduanya merupakan opsi yang populer, ia menawarkan beberapa kelebihan dibandingkan Apache, yang satu akan menjadi jejak memori yang lebih kecil. Namun Apache dengan downed yang menjalankan PHP-FPM akan memiliki jejak memori yang serupa.
Inti masalah:
Untuk membantu memfasilitasi check out ini:
Memanfaatkan CDN untuk membantu mengurangi keduanya akan jelas tetapi akan menambah manfaat pada optimasi frontend karena sebagian besar pengguna akhir browser akan dapat terhubung ke kedua server dengan jumlah batas koneksi yang sama. Ini juga membebaskan Apache dari tidak harus melewati pemeriksaan dan semacamnya hanya untuk menyajikan gambar statis sederhana. Lighthttpd adalah opsi jika Anda ingin menjalankan server web statis hanya untuk konten selain CDN.
PHP
PHP-FPM dan APC. Gunakan mereka, hapus modul PHP yang tidak dibutuhkan atau tidak diperlukan yang tidak diperlukan untuk Magento.
Basis kode Magento
AOE_TemplateHints sangat bagus untuk menentukan apakah blok Anda di-cache dengan benar:
AOE_Profiler baik untuk profil, pastikan dan aktifkan profil lapisan DB-nya (jelas di lingkungan lokal / dev). Ini dalam hubungannya dengan alat mytop yang disebutkan sebelumnya membuat menemukan perilaku buruk SQL menjadi tugas yang lebih mudah.
Modul pihak ke-3 & kode khusus
Beberapa praktik terbaik yang sangat baik untuk optimasi dari Magento sendiri adalah bacaan yang baik, dan perlu diingat ketika meninjau modul pihak ke-3 sebelum menggunakannya. (ada banyak IMO yang berperilaku buruk).
Alat Magniffer dari Magento ECG akan membantu dengan mudah mengidentifikasi kode perilaku buruk berdasarkan PDF yang diberikan di atas. Ini berbasis symfony / php-parser namun dapat diinstal melalui komposer.
Pernis
Sebagai advokat Varnish yang menjadi penulisnya adalah dev kernel FreeBSD, ia menawarkan beberapa waktu muat sub detik yang gila. Namun, jika Anda bahkan memiliki beberapa perbedaan kecil dalam template Anda yang tidak keluar dari kotak, Anda akan menghabiskan waktu mengkonfigurasi pernis / magento untuk menyelesaikan konten yang Anda butuhkan. Sebagian besar yang saya lihat hanya akan AJAX'ify item yang dibutuhkan tidak terlepas dari Varnish.
Ada sejumlah modul Magento untuk membantu memfasilitasi lubang meninju dan caching ini:
Pada akhirnya ini harus di akhir perjalanan optimasi Anda, dan MUNGKIN memerlukan beberapa penyesuaian untuk memperbaiki keadaan.
Magento CE FPC
Sejauh ini CE FPC terbaik yang saya temukan adalah: Lesti :: FPC
ini adalah open-source yang disusun dengan sangat baik (semua berbasis pengamat) dan FPC gratis untuk Komunitas.
Pada akhirnya, gunakan pengujian dan penilaian Anda sendiri.
Beberapa bacaan lebih lanjut:
sumber
Agak terlambat untuk utas ini saya tahu tetapi jika Anda masih mencari solusi maka Anda mungkin ingin mempertimbangkan, Evolved Caching . Ini harga yang sama dengan Warp, tetapi:
Menyiapkan dengan Varnish secara langsung, Anda hanya perlu mengaktifkan pengaturan admin dan menggunakan .vcl yang ditemukan di sini . Anda juga tidak terbatas pada Varnish hanya melayani cache ketika tidak ada cookie seperti biasa - Anda mendapatkan tingkat hit cache yang sangat tinggi.
sumber
Kami telah menulis FPC yang kompatibel dengan kunci formulir Magento 1.8 baru. Cache Halaman Penuh Brim: http://ecommerce.brimllc.com/full-page-cache-magento.html
BOOMER membuat poin yang bagus tentang memulai dari yang terendah di stack dan meningkatkannya. FPC atau Varnish harus tentang yang terakhir Anda lakukan. Kami melakukan audit kinerja dan biasanya menemukan masalah dengan konfigurasi MySQL dan APC yang benar-benar tidak aktif. Seperti ukuran buffer Innodb diatur ke default dan database telah berkembang jauh melewatinya.
Kami menyarankan Anda untuk tidak menggunakan FPC dengan Varnish, kecuali jika dirancang khusus untuk bekerja bersama. Secara umum, kami tidak merekomendasikan Varnish kecuali Anda memiliki beberapa server yang gemuk yang semuanya telah disetel bersama dengan basis kode Anda dan masih berjuang untuk menjaga lalu lintas. Memperbarui konten dinamis bisa rumit dengan Varnish khusus ketika mencoba membatasi permintaan Anda ke backend Magento dan pada gilirannya mengurangi beban. Jika Anda memiliki satu atau dua kepala web, keuntungannya mungkin tidak sebanding dengan waktu dan kerumitannya.
Dalam sebagian besar situasi, FPC yang baik akan memberi Anda kinerja yang Anda butuhkan, tentu saja setelah server dan basis kode Anda disetel. Dengan FPC kami, Anda bisa mendapatkan sub generasi 15ms kali pada cache level 1 dan sub 100ms pada cache standar. Cache level 1 kami digunakan untuk kasus-kasus di mana pengguna tidak login dan tidak memiliki apa-apa di keranjang mereka karena tidak melakukan hole hole. Ketika salah satu dari kondisi tersebut salah, cache standar digunakan dengan dukungan meninju lubang penuh.
FPC kami memiliki tinju lubang yang mudah dibangun dan bekerja di luar kotak dengan semua blok Magento standar serta setiap blok khusus yang mungkin Anda miliki. Semua dapat dikonfigurasi melalui panel admin.
Saya sarankan tetap menggunakan Redis kecuali Anda mengalami masalah penskalaan dengan Redis. Ini memiliki dukungan tag dan jauh lebih cepat daripada memcached dengan file atau database sebagai backend lambat. Jika Anda ingin tag dan pembersihan yang konsisten, Anda harus menggunakan memcached dengan database ketika Anda memiliki beberapa web head. Dengan dukungan tag Redis bawaan, Anda tidak perlu khawatir. Anda juga dapat menggunakan Redis untuk sesi Anda.
Saya dapat berbicara untuk semua FPC, tetapi dengan kami, Anda dapat mengonfigurasi melalui admin tempat menyimpannya. Anda dapat memilih untuk menggunakan backend cache Magento default atau menentukan pengaturan kustom untuk menggunakan File, Database, APC, Redis, Memcache, dan backend File yang Dioptimalkan.
sumber
Tidak ada jawaban yang benar. Toko harus memiliki muatan halaman dinamis sub 3s dan idealnya memuat halaman dinamis 1-2 detik, sub detik tidak diperlukan dan terutama merupakan statistik yang digerakkan oleh pemasaran. Apache mudah dipelajari dan sulit untuk tampil, Nginx sulit untuk dipelajari dan mudah untuk melakukan, banyak situs pindah ke Nginx namun untuk memiliki arsitektur berkualitas tinggi berdasarkan Nginx dan Magento tidak sederhana.
Cluster Magento multi-server sudah kompleks untuk diterapkan, dan bahkan lebih sulit untuk dipertahankan jika tidak pada arsitektur yang benar, kami biasanya bekerja dengan kluster yang lebih besar yang membuat semuanya berjalan lebih lancar termasuk peringkat. Kami melakukan ini dengan konfigurasi pemasangan standar dengan perubahan kecil untuk stabilitas jangka menengah hingga panjang yang menargetkan pemuatan halaman dinamis 1-2s, menjadikan segalanya lebih mudah untuk pemeliharaan.
Pernis bisa menjadi FPC, CDN antara lain, namun dalam kasus Anda yang terbaik adalah menganggapnya sebagai FPC. FPC memungkinkan lebih banyak pengunjung di server dan memberikan pengiriman statis yang lebih cepat yang Varnish adalah salah satu alat tersebut, namun ada berbagai masalah dengan itu termasuk konten dinamis, kontrol stok, harga. Jawabannya adalah bagaimana bisnis Anda terstruktur, bagaimana data Anda dimuat, seberapa sering, jenis hosting Anda dan banyak lagi, apakah bisnis Anda terpengaruh dengan menyediakan konten statis kepada pengunjung. Anda secara teknis dapat mengurangi banyak hal ini dengan konfigurasi FPC namun hal itu mempersulit lingkungan bisnis, dari perspektif pemilik bisnis, hal itu mungkin tidak menghasilkan pengembalian investasi yang seimbang.
FPC adalah bagian terakhir jika Anda memiliki sub 3s atau pemuatan dinamis yang lebih baik, arsitektur Anda dapat menangani tingkat permintaan pengunjung karena hal ini memengaruhi peringkat, menyerap lonjakan pemasaran dan liburan, dan memiliki anggaran untuk menambah kompleksitas dalam arsitektur server - hosting harus 0,5 -1% dari pendapatan untuk bisnis kecil, sebagian besar berjalan secara substansial di bawah ini menyebabkan banyak masalah bisnis tidak langsung.
Alasan Anda belum menemukan jawaban yang pasti adalah karena fakta bahwa pertanyaan-pertanyaan itu membutuhkan waktu berbulan-bulan untuk dijawab karena bersifat kualitatif (berbasis bisnis) yang memerlukan informasi yang tidak ingin dikirim oleh perusahaan kepada publik, kecepatan pemuatan laman kuantitatif (berbasis teknis) ) yang dapat diposting secara publik, itu adalah bagaimana Anda menggabungkan keduanya yang membuat solusi.
sumber
Anda dapat menggunakan cache halaman Magento ini yang sesuai dengan kebutuhan Anda dan mirip dengan pernis. Ini digunakan oleh banyak toko Magento terbesar. Beberapa fitur:
Sebagai cache multi-level, scalable bahkan untuk toko dengan traffic tertinggi dan telah digunakan pada banyak situs dengan traffic tinggi yang menerima traffic puncak seperti toko yang ditampilkan di SharkTank (acara tv)
sumber