PrestaShop は、PHP で開発された、特化された無料のオープンソース e コマース プラットフォームで、新興企業から大企業まで、オンライン ストアを立ち上げ、管理、拡張するためのインフラストラクチャを企業に提供することを目的としています。
PrestaShop は、豊富なカスタマイズ可能なテーマと包括的な電子商取引機能スイートを提供し、製品管理、安全な支払い、出荷、在庫管理などの幅広い機能をすぐにサポートします。
チューニングによるアプリケーションのパフォーマンスの向上は、次の領域に対処する包括的なアプローチによって最も効果的に達成されます。
経験豊富な PrestaShop 開発者の多くは、データベースのパフォーマンス チューニングをアプリのパフォーマンスを向上させる機会として捉えていません。これは、この分野についてほとんど知識がないためです。彼らはコードベースの最適化に多くの時間を費やしていますが、投資した時間とエネルギーに見合った価値のある結果が得られなくなる点に達します。 MySQL のチューニングが人気のオープンソース Web アプリケーションのパフォーマンスにどのようなプラスの影響を与えるかに関する私たちの研究は、この事実をユーザーに示すことを目的としています。
テストに使用されている PrestaShop のバージョンは 8.1.2 で、PHP 8.1 で使用するために特に最適化されています。このバージョンの PrestaShop のインストールに関する詳細なガイダンスは、公式ドキュメントに記載されています。
デモ データを含むデフォルトのインストールで PrestaShop をインストールし、すべてのデモ製品をエクスポートし、それを新しい製品として複数回インポートしてから、電子商取引用に複数の言語をインストールしました。
テスト期間は 2 日間でした。この長いテスト期間に対処するために、私たちは BlazeMeter (最大テスト期間 20 分) から、オープンソースの負荷テスト ツールである Locust に切り替えました。
使用したもの:
GCP Compute Engine インスタンス c2-standard-4。オペレーティング システムとして Debian Bullseye、ウェブサーバーとして Apache、データベース サイズ 1 GB のデフォルト構成の MariaDB 10.5 を備えています。
Prestashop 用に調整された構成:
[mysqld] innodb_change_buffering=none innodb_change_buffer_max_size=25 innodb_adaptive_flushing_lwm=25.000000 innodb_max_dirty_pages_pct=70.000000 innodb_autoextend_increment=48 thread_stack=299008 transaction_prealloc_size=8192 thread_cache_size=172 max_connections=172 query_cache_type=1 query_cache_size=134217728 query_cache_limit=33554432 query_cache_min_res_unit=4096 key_buffer_size=8388608 max_heap_table_size=16777216 tmp_table_size=16777216 innodb_buffer_pool_size=3355443200 innodb_log_file_size=25165824 innodb_file_per_table=1 sort_buffer_size=2097152 read_rnd_buffer_size=262144 bulk_insert_buffer_size=8388608 myisam_sort_buffer_size=8388608 innodb_buffer_pool_chunk_size=134217728 join_buffer_size=8388608 table_open_cache=2048 table_definition_cache=512 innodb_flush_log_at_trx_commit=1 innodb_log_buffer_size=16777216 innodb_write_io_threads=4 innodb_read_io_threads=4 innodb_flush_method=O_DIRECT innodb_thread_concurrency=0 optimizer_search_depth=0 innodb_purge_threads=4 thread_handling=one-thread-per-connection thread_pool_size=6
PrestaShop のパフォーマンス評価により、最適化後の大幅な機能強化が明らかになりました。
特に、応答時間は 610 ミリ秒から 370 ミリ秒へと顕著な短縮を示し、39%の改善を示しています。同様に、ウェブサイトのリクエスト処理能力は、1 秒あたり 8 リクエストから 12 リクエストへと 50% 急増しました。
CPU 使用率は減少し、100% の全容量から 90% に低下し、負荷が 10% 減少しました。最も印象的なのは、MySQL のクエリ処理能力が 1 秒あたり 5078 クエリから 7816 クエリに急増し、53% の大幅な増加です。
推奨される MySQL 構成を適用した後の応答時間への影響を示すために、スクリーンキャストを録画しました。
テスト結果のグラフは以下で入手できます:
応答時間 (ミリ秒)、Prestashop で調整された MySQL 構成とデフォルト
CPU 使用率 (%)、PrestaShop で調整された MySQL 構成とデフォルト
1 秒あたりのクエリ数、Prestashop で調整された MySQL 構成とデフォルト
テスト環境のセットアップでは、Multiservicios Austral の CEO、Giuseppe Pompeo と緊密に協力しました。ジュゼッペ氏の会社はチリのデジタル サービスの最前線にあり、特に PrestaShop を通じた電子商取引の専門知識で知られています。 PrestaShop によって認められ認定された彼らのチームは、6 年以上にわたってこの分野で専門的かつプロフェッショナルなサービスを提供してきました。
サーバーの準備、ウェブサイトの立ち上げ、初期データの入力において、ジュゼッペの関与は非常に重要でした。クラウド インフラストラクチャに関する彼の豊富な経験と、PrestaShop のような e コマース プラットフォームの最適化に熱心に取り組んでいることが、テストのスムーズな実行を保証する上で重要な役割を果たしました。私たちは、Giuseppe が私たちのプロジェクトにもたらした知識と効率性に非常に感謝しています。
PrestaShop を使用したテスト手順では、データベース サーバー構成を構成した後、応答時間 (遅延)、CPU 使用率、および 1 秒あたりのクエリ数の改善が見られました。 .
応答時間 (レイテンシ)は 39% の間で低下し、CPU 使用率は 10% 低下しました。 1 秒あたりのクエリ数 は PrestaShop を 53% 増加させました。 ウェブサイトへの 1 秒あたりのリクエスト数 +50%。
この調査により、PrestaShop アプリケーションのパフォーマンスを向上させる手段として MySQL チューニングの価値を示し、PrestaShop ユーザーが Web サイトのパフォーマンスを最適化する際にこの実践を検討するよう奨励したいと考えています。
Releem などのツールを使用すると、データベースを迅速かつ簡単に構成して最適なパフォーマンスを実現でき、ソフトウェア開発チームの負担を軽減できます。
以上がMySQL チューニングによって PrestaShop のパフォーマンスがどのように向上するかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。