Mengapa Magento 2 sangat lambat?

31

Saya menggunakan Magento 1.9 dan tidak apa-apa. Tidak secepat situs joomla sederhana tetapi saya punya banyak pelanggan tanpa masalah.

Sekarang saya ingin meningkatkan situs saya ke Magento 2, saya membeli host baru (sama seperti yang saya miliki saat ini) dan menginstal Magento 2 tanpa data sampel dan sulit digunakan. Bukan hanya admin, tetapi beranda yang kosong juga membutuhkan waktu beberapa menit untuk memuat dan ketika saya mencoba membuat akun saya mendapatkan kesalahan bahwa saya "Batas Sumber Daya Tercapai"

Saya mencoba dengan Facebook FlashCache, OptimumCache dan Cloudflare tetapi tidak ada yang berubah meskipun pembuatnya mengatakan Magento 2 jauh lebih cepat daripada versi pertama.

Saya ingin mengerti mengapa mereka tidak bisa memperbaikinya setelah bertahun-tahun dan mengapa begitu banyak orang menggunakannya?

Apakah ada cara untuk mengikatnya?

MEMPERBARUI:

Saya menggunakan mgt-commerce sebelumnya dan itu sangat cepat, butuh kurang dari 2 detik untuk memuat tetapi harganya terlalu mahal: Harga AWS + € 199,00

Mereka menawarkan php7 / HHVM, Varnish, Redis, CDN, NGINX secara default saya kira itulah sebabnya cepat.

Saya harus membeli akun Amazon WS saya tidak tahu mengapa saya kira situs saya sebenarnya dihosting oleh Amazon.

Saya mencari kecepatan yang sama untuk harga yang lebih rendah. Contoh penyedia VPS.

Saya mencari-cari tetapi menemukan bahwa setiap penyedia hosting mengklaim bahwa mereka memiliki hosting Magento. Siteground, Mochahost, Hostgator, Fastcomet dll.

Mungkin ada penyedia hosting yang akan memasang cache ini untuk mengalahkan pesaing.

PS: Maaf kalau posting saya sepertinya konyol untuk programmer, saya akan memilih ekonomi, perdagangan dan pemasaran di universitas sayangnya :(

Petetcap
sumber
Bisakah Anda jelaskan apa yang sudah Anda coba dengan Facebook FlashCache, OptimumCache, dan Cloudflare?
mbalparda
1
Sepertinya masalah lingkungannya. Di vm saya itu buka halaman / home page tanpa FPC <0,1s dan dengan FPC <
0,01s
nonaktifkan toko penggabung css / js> konfigurasi> lanjutan> pengembang lihat komentar saya di sini magento.stackexchange.com/questions/150073/…
Konstantin Gerasimov
2
Saya mulai dengan M2 dan sangat frustrasi dengan kinerjanya juga. Jika perangkat lunak Anda memerlukan seribu cache untuk dijalankan untuk satu pengguna, ada yang salah. Saya harap saya segera berubah pikiran.
Ricardo Martins
@KAndy dapatkah Anda menulis apa yang Anda gunakan? Jika Anda menggunakan gelandangan, mungkinkah untuk membagikan skrip penyediaan? Saya mencoba beberapa VM tetapi semuanya tidak bekerja. Instalasi Magento berhasil tetapi halaman tidak dimuat.
Alan

Jawaban:

24

Ada banyak sumber daya yang tersedia untuk meningkatkan kinerja Magento 2 dan semuanya didokumentasikan dengan cukup baik.

Mode: Magento 2 telah memperkenalkan mode, sebagai mode default yang paling lambat. Cobalah mode pengembang dan selalu jalankan live store Anda dalam mode produksi. Info lebih lanjut di sini .

Cache: Varnish didukung di luar kotak, cukup mudah untuk dikonfigurasikan dan digunakan.

Redis: Redis adalah solusi cache backend opsional untuk diganti Zend_Cache_Backend_File, yang digunakan di Magento 2 secara default. Ini dapat digunakan untuk penyimpanan sesi dan caching halaman.

Memcache: Memcached adalah penyimpanan nilai kunci dalam-memori untuk potongan kecil data acak (string, objek) dari hasil panggilan basis data, panggilan API, atau rendering halaman. Di Magento 2 dapat digunakan untuk sesi .

PHP 7: Magento 2 kompatibel dengan PHP 7 di luar kotak. Ada banyak penelitian tentang bagaimana PHP 7 mempengaruhi kinerja untuk selamanya.

Ini baru permulaan, Anda harus dapat memperbaiki server web dan server database Anda, tetapi itu akan sangat tergantung pada kasus penggunaan khusus Anda.

Jika Anda tidak tahu bagaimana melakukannya sendiri, ada banyak perusahaan yang berspesialisasi dalam hosting Magento.

Untuk lingkungan pengembang yang cukup solid, rekomendasi pribadi saya adalah Paliarush 'Vagrant atau VM yang saya dapatkan dari Magento untuk kursus. Ada gambar buruh pelabuhan resmi segera hadir.

mbalparda
sumber
9

Magento berjalan cukup baik bahkan dalam mode pengembang. Memang perlu beberapa konfigurasi awal.

Pertama pastikan Magento diatur dengan benar, dengan asumsi Anda di Ubuntu:

Gunakan build terbaru karena Magento 2.2+ mendukung php 7.1 http://devdocs.magento.com/guides/v2.2/install-gde/prereq/php-ubuntu.html

sudo apt-get install php7.1 php7.1-imap php7.1-xml php7.1-dom php7.1-intl

Jika Anda menjalankan beberapa versi php, tetapkan 7,1 ke default via

sudo update-alternatives --set php /usr/bin/php7.1

Ke Magento

  1. Setel ke Pengembang jika belum php -f bin/magento deploy:mode:show

    php -f bin/magento deploy:mode:set developer

  2. Periksa cache Magento diaktifkan

    php -f bin/magento cache:status

Jika tidak diaktifkan (seri 1)

php -f bin/magento cache:enable

Aktifkan bundel JS / CSS

Toko> Konfigurasi> Lanjutan> Pengembang

* Perhatikan item menu di atas hanya muncul sementara dalam mode pengembang

Penyelesaian Templat

  • Minify HTML = Ya

Pengaturan Javascript

  • Gabungkan file JS = Ya

  • Aktifkan Bundling JS = Ya

  • Perkecil file JS = Ya

Pengaturan CSS

  • Gabungkan CSS = Ya
  • Minify CSS = Ya

Lakukan cache flush dari sini setelah setiap langkah flush cache, ini adalah baseline Anda untuk mencoba meningkatkan waktu pemuatan.

php -f bin/magento cache:flush

Bundling lanjutan

Ini akan menjadi posting dengan sendirinya mengikuti panduan dari magento devdocs tentang cara mengaktifkan ini, ini selanjutnya dapat meningkatkan pemuatan JS frontend sehingga 3x lebih cepat.

Gunakan Redis

sudo apt-get update
sudo apt-get install build-essential tcl8.5
sudo apt-get install make
wget http://download.redis.io/redis-stable.tar.gz
tar xvzf redis-stable.tar.gz
cd redis-stable
make
cd utils/
sudo ./install_server.sh

Edit /www/project/app/etc/env.php

'cache' => 
  array (
    'frontend' => 
    array (
      'default' => 
      array (
        'backend' => 'Cm_Cache_Backend_Redis',
        'backend_options' => 
        array (
          'server' => '127.0.0.1',
          'database' => '0',
          'port' => '6379',
        ),
      ),
      'page_cache' => 
      array (
        'backend' => 'Cm_Cache_Backend_Redis',
        'backend_options' => 
        array (
          'server' => '127.0.0.1',
          'port' => '6379',
          'database' => '1',
          'compress_data' => '0',
        ),
      ),
    ),
  ),

Gunakan PHP-FPM

apt-get install php7.1-fpm
a2enmod proxy_fcgi setenvif
a2enconf php7.1-fpm
sudo service php7.1-fpm restart
sudo service apache2 restart

Aktifkan opcache di PHP

Edit /etc/php/7.1/apache2/php.ini temukan opcache.enable

opcache.enable=1

Saya juga akan merekomendasikan menggunakan Cloud DB seperti AWS RDS atau yang lain itu akan menyelamatkan Anda dari sakit kepala mengkonfigurasi mysql.

Jika sekarang Anda mengaktifkan mode produksi php -f bin/magento deploy:mode:set production

Anda harus menemukannya berjalan cukup baik.

Mengambil lebih jauh dari sini Anda dapat menambahkan Varnish, Beralih ke Nginx tambahkan CDN untuk file statis.

Joel Davey
sumber
2

Saya juga mengalami masalah ini pada Macbook Pro (akhir 2016) dengan MAMP.

Yang ingin saya lakukan adalah membuat tema Magento 2. Saya telah menonaktifkan semua cache dan butuh waktu 30-an untuk memuat ulang halaman (frontend dan backend).

Saya mengaktifkan semua cache dengan perintah "php magento cache: enable" dan situs memuat dengan sangat cepat. Saya masih dapat bekerja dengan Grunt dan KURANG tanpa menonaktifkan jenis cache apa pun.

Klevis Miho
sumber
1

Magento 2 tidak lambat secara default. Anda harus mengikuti langkah-langkah ini untuk membuatnya cepat:

  1. Persyaratan Server dan Sistem

  2. Perbarui Versi Magento

  3. Aktifkan Tembolok Pernis

  4. Konfigurasikan Memcached

  5. Aktifkan Kategori dan Produk Rata

  6. Optimalkan Javascript dan CSS

  7. Jaringan Pengiriman Konten

  8. Gunakan tema yang ringan

  9. Ekstensi Bebas Bug

  10. Gambar Harus Dioptimalkan Sepenuhnya

Syed Muneeb Ul Hasan
sumber
22
Maaf, tetapi jika Anda harus menambahkan beberapa tingkat caching untuk aplikasi, maka adalah lambat secara default.
Robert Egginton
Robert: Bung, menambahkan cache ke beberapa lapisan sistem multi-layer adalah jenis arsitektur yang tepat. Kami tidak berbicara cache setelah cache ...
-o-
Menggunakan cache selama pengembangan bukanlah solusi yang optimal. Mengosongkan cache setiap kali perubahan dilakukan terasa lebih seperti pengembangan dalam bahasa yang dikompilasi, bukan PHP.
Alan
0

Bagaimana menurut Anda Magento 2 lambat? Situs saya yang menggunakan tema yang sangat berat memberi skor 93/100 dalam Page Speed ​​dan waktu muat yang solid adalah 2 detik. Saya akan mengatakan mendapatkan host yang lebih baik untuk Magento karena server web Anda memainkan peran besar dalam kinerja situs Anda. Adapun mode "default" menjadi yang paling lambat tidak benar sama sekali. Saya menjalankan toko saya dalam mode default sampai saya siap untuk beralih ke mode produksi dan mencetak 91/100 dalam mode default dan hanya pergi ke 93/100 setelah beralih ke mode produksi.

Dapatkan host yang lebih baik dan server web yang lebih baik jika Anda benar-benar ingin menggunakan Magento 2.

James Stubbs
sumber
Setelah magento cache:disablewaktu buka lebih dari 30 detik.
Tom Anderson