Magento 2が非常に遅いのはなぜですか?


30

私はMagento 1.9を使用しましたが、大丈夫でした。単純なjoomlaサイトほど速くはありませんでしたが、問題なく多くの顧客がいました。

サイトをMagento 2にアップグレードしたかったので、新しいホストを購入し(現在持っているのと同じ)、Magento 2をサンプルデータなしでインストールし、使用するのが面倒でした。管理者だけでなく、空のホームページも数分かかりますロードして、「リソース制限に達しました」というエラーが表示されるアカウントを作成しようとすると

私は試してみましたFacebookのFlashCache、OptimumCacheとCloudFlareのクリエイターが言っていても何も変わっていませんMagentoの2がはるかに高速最初のバージョンよりもです。

何年も経って修正できないのか、なぜ多くの人がそれを使用しているのかを理解したいと思います。

それを固定する方法はありますか?

更新:

以前にmgt-commerceを使用しましたが、信じられないほど高速で、ロードに2秒もかかりませんでしたが、コストがかかりすぎました:AWS Price +€199.00

彼らはphp7 / HHVM、ワニス、Redis、CDN、NGINXをデフォルトで提供しました。

Amazon WSアカウントを購入しなければならなかったのですが、私のサイトが実際にAmazonによってホストされていると推測される理由がわかりません。

低価格で同じ速度を探しています。VPSプロバイダーの例。

私は周りを見回していましたが、すべてのホスティングプロバイダーがMagentoをホスティングしていると主張していることがわかりました。Siteground、Mochahost、Hostgator、Fastcometなど

競合他社に勝つためにこれらのキャッシュをインストールするホスティングプロバイダーがあるかもしれません。

PS:残念ながら、私の投稿がプログラマにとって馬鹿げていると思われる場合は、残念ながら大学で経済学、商業、マーケティングを選択します:(


FacebookのFlashCache、OptimumCache、Cloudflareで試したことを説明してください。
mbalparda 16

1
環境問題のように見えます。私のVM上では<0.1秒とFPC <0.01秒でFPCせずにオープンCMS /ホームページです
キャンディ

店舗をマージ無効CSS / JS>設定>高度>開発者ここに私のコメントを参照してくださいmagento.stackexchange.com/questions/150073/...
コンスタンチンGerasimov

2
私はM2から始めていますが、そのパフォーマンスにも非常に不満を感じています。ソフトウェアが1人のユーザーで実行するために1,000のキャッシュを必要とする場合、何か問題があります。私はすぐに私の心を変えることを願っています。
リカルドマルティンス

@KAndyは、使用するvmを記述できますか?vagrantを使用すると、プロビジョニングスクリプトを共有できますか?私はいくつかのVMを試しましたが、それらはすべて機能しませんでした。Magentoのインストールは成功しましたが、ページが読み込まれません。
アラン

回答:


23

Magento 2のパフォーマンスを向上させるために利用できる複数のリソースがあり、それらはすべて十分に文書化されています。

モード:Magento 2にはモードが導入されており、デフォルトのモードが最も低速です。開発者モードを試してみて、常に本番モードでライブストアを実行してください。詳細はこちら

キャッシュ:Varnishデフォルトでサポートされており、設定と使用が非常に簡単です。

Redis:Redisは、Zend_Cache_Backend_FileMagento 2でデフォルトで使用されるを置き換えるオプションのバックエンドキャッシュソリューションです。セッションストレージとページキャッシュに使用できます。

Memcache:Memcachedは、データベース呼び出し、API呼び出し、またはページレンダリングの結果からの任意のデータ(文字列、オブジェクト)の小さな塊のためのメモリ内のキーと値のストアです。Magento 2では、セッションに使用できます

PHP 7:Magento 2は、そのままPHP 7と互換性があります。PHP 7がパフォーマンスに良い影響を与える方法に関する多くの研究があります。

これはほんの始まりに過ぎません。Webサーバーとデータベースサーバーを微調整できるはずですが、それは特定のユースケースに大きく依存します。

自分でそれを行う方法がわからない場合は、Magentoホスティングに特化した企業がたくさんあります。

かなり安定した開発環境の場合、個人的な推奨事項は、Paliarush 'Vagrant、またはコース用にMagentoから入手したVMです。近日公開される公式のdockerイメージがあります。


8

Magentoは、開発者モードでも十分に動作します。ただし、初期設定が必要です。

Ubuntuを想定して、まずMagentoが正しくセットアップされていることを確認します。

Magento 2.2+は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

実行中の複数のphpバージョンが7.1を介してデフォルトに設定する場合

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

Magentoに

  1. まだ開発者に設定されていない場合 php -f bin/magento deploy:mode:show

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

  2. Magentoのキャッシュが有効になっていることを確認してください

    php -f bin/magento cache:status

有効になっていない場合(一連の1)

php -f bin/magento cache:enable

JS / CSSバンドリングを有効にする

ストア>構成>詳細設定>開発者

*上記のメニュー項目は、開発者モードでのみ表示されます。

テンプレート設定

  • HTMLの縮小=はい

JavaScript設定

  • JSファイルのマージ=はい

  • JSバンドリングを有効にする=はい

  • JSファイルの縮小=はい

CSS設定

  • CSSのマージ=はい
  • CSSの縮小=はい

すべてのステップがキャッシュをフラッシュした後、ここからキャッシュフラッシュを実行します。これは、ロード時間を改善しようとするためのベースラインです。

php -f bin/magento cache:flush

高度なバンドル

これは、それ自体を有効にする方法に関するmagento devdocsのガイドラインに従う投稿です。これにより、フロントエンドJSの読み込みがさらに増加し​​、3倍高速になります。

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

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

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

PHPでopcacheを有効にする

/etc/php/7.1/apache2/php.iniを編集してopcache.enableを見つけます

opcache.enable=1

また、AWS RDSなどのCloud DBを使用することをお勧めします。これにより、mysqlを設定する際の頭痛の種がなくなります。

プロダクションモードを有効にした場合 php -f bin/magento deploy:mode:set production

あなたはそれが合理的にうまく動いているのを見つけるべきです。

ここからさらに進んで、ワニスを追加し、Nginxに切り替えて静的ファイルのCDNを追加できます。


2

MAMPを搭載したMacbook Pro(2016年後半)でもこの問題が発生しました。

私がやりたかったのは、Magento 2テーマを作成することでした。すべてのキャッシュを非アクティブ化しており、ページ(フロントエンドとバックエンド)のリロードに30秒ほどかかりました。

「php magento cache:enable」コマンドですべてのキャッシュをアクティブにすると、サイトの読み込みが非常に高速になりました。キャッシュタイプを非アクティブにすることなく、GruntとLESSを引き続き使用できます。


1

Magento 2はデフォルトで低速ではありません。高速にするには、次の手順に従う必要があります。

  1. サーバーおよびシステム要件

  2. Magentoバージョンの更新

  3. ニスキャッシュを有効にする

  4. Memcachedを構成する

  5. フラットカテゴリと製品を有効にする

  6. JavaScriptとCSSを最適化する

  7. コンテンツ配信ネットワーク

  8. 軽量テーマを使用する

  9. バグのない拡張機能

  10. 画像を完全に最適化する必要があります


22
申し訳ありませんが、アプリケーションに複数レベルのキャッシュを追加する必要がある場合、デフォルトで遅くなります。
ロバートエギントン

Robert:多層システムのいくつかの層にキャッシュを追加するのは、適切な種類のアーキテクチャです。私たちは、キャッシュ時にキャッシュを話していない... -O -
miracules

開発中にキャッシュを使用することは、実際には最適なソリューションではありません。変更が行われるたびにキャッシュをクリアすることは、PHPではなくコンパイルされた言語で開発することに似ています。
アラン

0

Magento 2の処理速度が遅いとどう思いますか?非常に重いテーマを使用する私のサイトは、ページスピードが93/100であり、読み込み時間は2秒です。あなたのウェブサーバーがあなたのサイトのパフォーマンスに大きな役割を果たすので、Magentoのより良いホストを手に入れたいと思います。「デフォルト」モードが最も遅く、まったく真実ではありません。実稼働モードに切り替える準備ができるまでストアをデフォルトモードで実行し、デフォルトモードで91/100を記録し、実稼働モードに切り替えた後のみ93/100になりました。

Magento 2を本当に使いたい場合は、より良いホストとより良いWebサーバーを入手してください。


magento cache:disableロード時間が30秒を超えた後。
トムアンダーソン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.