Magento 2 neden aşırı yavaş?


30

Magento 1.9 kullandım ve sorun yoktu. Basit bir joomla sitesi kadar hızlı değildi ama problemsiz birçok müşterim vardı.

Şimdi sitemi Magento 2'ye yükseltmek istedim, yeni bir ana bilgisayar aldım (şu anda sahip olduğum gibi) ve Magento 2'yi örnek veriler olmadan yükledim ve kullanması çok zor bir iş. Sadece yönetici değil yüklemek ve bir hesap oluşturmaya çalıştığımda "Kaynak Sınırına Ulaşılıyor" hatası alıyorum

Birlikte çalıştığımız Facebook FlashCache, OptimumCache ve Cloudflare yaratıcıları söyledi olsa ama hiçbir şey değişmedi Magento 2 çok daha hızlı ilk sürümü daha uzundur.

Neden bu kadar uzun zaman sonra düzeltemediklerini ve neden bu kadar çok kişinin kullandığını anlamak isterim?

Bağlamanın bir yolu var mı?

GÜNCELLEŞTİRME:

Daha önce mgt-commerce kullanmıştım ve inanılmaz hızlıydı, yüklemesi 2 saniyeden daha az sürdü, ancak maliyeti çok fazla: AWS Fiyatı + € 199.00

Php7 / HHVM, Varnish, Redis, CDN, NGINX'i varsayılan olarak sundular.

Amazon WS hesabı satın almak zorunda kaldım, neden sitemin Amazon tarafından barındırıldığını tahmin ediyorum.

Ben daha düşük bir fiyat için aynı hızı arıyorum. Bir VPS sağlayıcı örneği.

Etrafıma bakıyordum ama her barındırma sağlayıcısının Magento barındırdığını iddia ettiğini öğrendim. Site alanı, Mochahost, Hostgator, Fastcomet vb.

Belki de rakipleri yenmek için bu önbellekleri yükleyen bir barındırma sağlayıcısı vardır.

Not: Görevim programcılar için aptal gibi görünüyorsa, ne yazık ki üniversitede ekonomi, ticaret ve pazarlamayı seçtim.


Lütfen Facebook FlashCache, OptimumCache ve Cloudflare ile neler denediğinizi açıklayabilir misiniz?
mbalparda

1
Çevre sorunu gibi görünüyor. Benim vm üzerinde açık CMS / ana sayfa FPC <0.1s ve FPC <0.01s ile
KAndy

depolarını birleştirme devre dışı css / js> yapılandırma> gelişmiş> geliştirici burada benim yorumu görmek magento.stackexchange.com/questions/150073/...
Konstantin Gerasimov

2
M2 ile başlıyorum ve performansı ile de çok sinirliyim. Yazılımınızın tek bir kullanıcı için çalışması için binlerce önbellek gerektiriyorsa, yanlış bir şey var. Umarım yakında fikrimi değiştiririm.
Ricardo Martins

@KAndy hangi vm'yi kullanıyorsunuz? Eğer serseri kullanıyorsanız temel hazırlık komut dosyasını paylaşmak mümkün olur mu? Birkaç VM denedim ama hepsi işe yaramadı. Magento kurulumu başarılı ancak sayfalar yüklenmiyor.
Alan

Yanıtlar:


23

Magento 2 performansını artırmak için kullanılabilecek çok sayıda kaynak vardır ve hepsi oldukça iyi belgelenmiştir.

Mod: Magento 2, en yavaş olanı olan modlar oluşturdu. Geliştirici modunu deneyin ve her zaman canlı mağazanızı üretim modunda çalıştırın. Daha fazla bilgi burada .

Önbellek: Vernik kutunun dışında desteklenir, yapılandırılması ve kullanımı oldukça kolaydır.

Redis: Redis , Zend_Cache_Backend_Filevarsayılan olarak Magento 2'de kullanılan, isteğe bağlı bir arka uç önbellek çözümüdür . Oturum depolama ve sayfa önbelleği için kullanılabilir.

Memcache: Memcached, veritabanı çağrıları, API çağrıları veya sayfa görüntülemenin sonuçlarından oluşan küçük rasgele veri parçaları (dizeler, nesneler) için hafıza içi bir anahtar-değer deposudur. Magento 2'de seanslar için kullanılabilir .

PHP 7: Magento 2, kutudan çıkan PHP 7 ile uyumludur. PHP 7'nin performansı nasıl etkilediği konusunda çok fazla araştırma var.

Bu sadece bir başlangıç, web sunucunuzu ve veritabanı sunucunuzu ince ayarlayabilmeniz gerekir, ancak bu sizin özel kullanım durumunuza büyük ölçüde bağlı olacaktır.

Bunu nasıl yapacağınızı bilmiyorsanız, Magento hosting konusunda uzmanlaşmış birçok firma var.

Oldukça sağlam dev bir ortam için benim kişisel öneri Paliarush' Serseri veya VM ben kursları için Magento döndüm. Yakında resmi bir liman işçisi resmi var.


8

Magento, geliştirici modunda bile oldukça iyi çalışıyor. Yine de bazı başlangıç ​​konfigürasyonuna ihtiyacı var.

İlk önce, Magento'nun doğru kurulduğundan emin olun, Ubuntu'da olduğunu varsayarak:

En yeni yapıyı Magento 2.2+ php 7.1 desteği olarak kullanın 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

Çalışan birden fazla php versiyonunuz 7.1’den varsayılan

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

Magento'ya

  1. Henüz yapmadıysanız Geliştirici olarak ayarlayın php -f bin/magento deploy:mode:show

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

  2. Magento'nun önbelleğinin etkin olup olmadığını kontrol edin

    php -f bin/magento cache:status

Etkin değilse (1'lerin dizisi)

php -f bin/magento cache:enable

JS / CSS paketini etkinleştir

Mağazalar> Yapılandırma> Gelişmiş> Geliştirici

* Yukarıdaki menü öğesinin yalnızca geliştirici modundayken göründüğünü unutmayın.

Şablon ayarları

  • HTML'yi küçült = Evet

Javascript Ayarları

  • JS dosyalarını birleştir = Evet

  • JS Paketlemeyi Etkinleştir = Evet

  • JS dosyalarını küçült = Evet

CSS Ayarları

  • CSS Birleştir = Evet
  • CSS'yi küçült = Evet

Her adımda önbelleği temizledikten sonra buradan önbellek temizleyin, bu yükleme süresini iyileştirmeye çalışmak için sizin temelinizdir.

php -f bin/magento cache:flush

Gelişmiş paket

Bu başlı başına bir mesaj olacaktır magento devdocs'ın bunu nasıl etkinleştireceğine ilişkin yönergeleri izler, bu da ön uç JS yüklemesini daha hızlı artırabilir.

Redis Kullan

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

/Www/project/app/etc/env.php dosyasını düzenleyin.

'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',
        ),
      ),
    ),
  ),

PHP-FPM Kullan

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

PHP'de opcache'yi etkinleştir

/Etc/php/7.1/apache2/php.ini dosyasını düzenleyin. Opcache.enable

opcache.enable=1

Ayrıca AWS RDS ya da diğer bir Cloud DB kullanmanızı öneriyoruz, bu da mysql'i yapılandırmanın baş ağrısından kurtulmanızı sağlar.

Şimdi üretim modunu etkinleştirirseniz php -f bin/magento deploy:mode:set production

Oldukça iyi çalıştığını bulmalısın.

Buradan daha da ileri giderek vernik ekleyebilir, Nginx'e Geçiş statik dosyalar için bir CDN ekleyebilirsiniz.


2

Bu sorunu MAMP'lı bir Macbook Pro'da (2016'nın sonlarında) da yaşadım.

Benim yapmak istediğim Magento 2 temasını yaratmaktı. Tüm önbellekleri devre dışı bıraktım ve bir sayfanın yeniden yüklenmesi 30 saniye sürdü (ön uç ve arka uç).

Tüm önbellekleri "php magento cache: enable" komutuyla etkinleştirdim ve site çok hızlı yükleniyor. Herhangi bir önbellek türünü devre dışı bırakmadan Grunt ve LESS ile çalışabilirim.


1

Magento 2 varsayılan olarak yavaş değildir. Hızlı yapmak için bu adımları izlemelisiniz:

  1. Sunucu ve Sistem Gereksinimleri

  2. Magento Sürümünü Güncelle

  3. Vernik Önbelleğini Etkinleştir

  4. Memcached'i Yapılandır

  5. Düz Kategoriler ve Ürünleri Etkinleştir

  6. Javascript ve CSS’i optimize edin

  7. İçerik Teslim Ağı

  8. Hafif tema kullan

  9. Sorunsuz Uzantılar

  10. Görüntüler Tamamen Optimize Edilmeli


22
Üzgünüm, bir uygulamaya birden fazla önbellek düzeyi eklemek zorunda kalırsanız, varsayılan olarak yavaşlar.
Robert Egginton

Robert: Dostum, çok katmanlı bir sistemin birkaç katmanına önbellek eklemek doğru mimari türüdür. Önbellek üzerine önbellek konuşmuyoruz ... -o-
miracules

Geliştirme sırasında önbellek kullanımı gerçekten en uygun çözüm değildir. Her değişiklik yapıldığında önbelleği temizlemek, derlenmiş dilde geliştirmek, PHP'yi geliştirmek gibi bir şey değil.
Alan

0

Magento 2'nin yavaş olduğunu nasıl düşünüyorsun? Çok ağır bir tema kullanan sitem Sayfa Hızı'nda 93/100 puan alıyor ve yükleme süreleri 2 sn. Web sunucunuz sitenizin performansında büyük rol oynadığı için Magento için daha iyi bir sunucu bulacağını söyleyebilirim. "Varsayılan" modda ise en yavaş olması hiç doğru değil. Mağazamı varsayılan modda üretim moduna geçmeye hazır olana kadar koştum ve varsayılan modda 91/100 attı ve sadece üretim moduna geçtikten sonra 93/100 seviyesine çıktı.

Magento 2'yi gerçekten kullanmak istiyorsanız, daha iyi bir ev sahibi ve daha iyi bir web sunucusu edinin.


Sonra magento cache:disableyükleme süresi 30 saniye bitti.
Tom Anderson,
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.