ホームページ  >  記事  >  データベース  >  MySQL チューニングによって PrestaShop のパフォーマンスがどのように向上するか

MySQL チューニングによって PrestaShop のパフォーマンスがどのように向上するか

王林
王林オリジナル
2024-08-13 18:30:401092ブラウズ

PrestaShop は、PHP で開発された、特化された無料のオープンソース e コマース プラットフォームで、新興企業から大企業まで、オンライン ストアを立ち上げ、管理、拡張するためのインフラストラクチャを企業に提供することを目的としています。

PrestaShop は、豊富なカスタマイズ可能なテーマと包括的な電子商取引機能スイートを提供し、製品管理、安全な支払い、出荷、在庫管理などの幅広い機能をすぐにサポートします。

アプリケーションのパフォーマンスを向上させる方法

チューニングによるアプリケーションのパフォーマンスの向上は、次の領域に対処する包括的なアプローチによって最も効果的に達成されます。

  • サーバー リソース — CPU、メモリ、ストレージ
  • ソフトウェア構成 — Linux、Nginx、Php…
  • データベース管理システム (DBMS) 構成 - MySQL、PostgreSQL
  • データベーススキームを最適化し、インデックスを変更します
  • アプリケーションの最適化 — コード、クエリ、アーキテクチャ…

経験豊富な 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 を備えています。

MySQL の構成

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 構成を適用した後の応答時間への影響を示すために、スクリーンキャストを録画しました。

How MySQL Tuning Can Improve PrestaShop Performance

How MySQL Tuning Can Improve PrestaShop Performance

Prestashop で調整された MySQL 構成とデフォルト

テスト結果のグラフは以下で入手できます:

How MySQL Tuning Can Improve PrestaShop Performance
応答時間 (ミリ秒)、Prestashop で調整された MySQL 構成とデフォルト

How MySQL Tuning Can Improve PrestaShop Performance
CPU 使用率 (%)、PrestaShop で調整された MySQL 構成とデフォルト

How MySQL Tuning Can Improve PrestaShop Performance
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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。