Adobe Commerce:MySQL クエリが「資格認定を待機中」状態でスタックすると、パフォーマンスの問題が発生する

MySQL の 認定待ち 状態は、Adobe Commerceを強化する Galera ベースのクラスターで使用される 2 段階のコミットプロセスの一部です。 このメカニズムにより、トランザクションが送信されるたびにデータベースに競合が発生しなくなります。 この状態の短時間の表示は正常ですが、長時間の表示はパフォーマンスのボトルネックを示します。 これらの遅延は、クエリの長時間実行、高い競合、インフラストラクチャの問題が原因で発生する可能性があります。

これを修正するには、低速のクエリの分析、キャッシュのフラッシュの管理、SWAT 推奨事項の実装、データベース統計の最適化を行います。

説明 description

環境

  • Product: Adobe Commerce
  • データベースクラスタータイプ: Galera ベースの MySQL

問題/症状

多数の MySQL クエリが 資格認定を待機中 状態でスタックしたためにパフォーマンスが低下します。 症状は次のとおりです。

  • 買い物かごでの商品の表示遅延。
  • クエリの実行が遅い。
  • 低速なクエリログファイルが大きい。
  • キャッシュフラッシュは、ピーク使用時間と一致します。

解決策 resolution

この問題を解決するには:

  1. MySQL の低速クエリログを確認して、長時間実行されているクエリを特定します。 ログファイルのサイズが数百 MB に大きくなる場合は、重大な問題が発生していることを示します。 問題のあるクエリを最適化してボトルネックを軽減し、全体的なパフォーマンスを向上させます。 詳しくは、Commerce KB ドキュメントの ​ 処理に時間のかかるクエリとプロセスの MySQL の確認 ​ を参照してください。

  2. 深夜や早朝など、ピーク以外の時間にキャッシュのフラッシュをスケジュールします。 これにより、需要の多い時間帯にシステム負荷が増加するのを回避し、パフォーマンスの低下を防ぐことができます。 詳しくは、Commerce設定ガイドの ​ キャッシュの管理 ​ ドキュメントを参照してください。

  3. SWAT レポートの Recommendations を実装します。 これには、テーブルに欠落しているプライマリキーを追加したり、トリガーの使用を最小限に抑えたりすることが含まれる場合があります。どちらも、競合を減らし、認証の速度を向上させる可能性があります。 Site-Wide Analysis Tool について詳しくは、Commerce ツール ドキュメントを参照してください。

  4. 注意 : この操作により、テーブルが一時的にロックされる場合があります。 営業時間外に実行し、cron ジョブが無効になっていることを確認して中断を回避します。

    テーブル分析を使用して mysqlcheck を実行し、データベース統計が最新であることを確認します。

    code language-none
    mysqlcheck -h<host_name> -u<user_name> -p -a <db_name>
    
  5. テーブル統計が最新であることを確認します。 統計が古いと、クエリ実行プランが非効率的になり、クラスター全体のパフォーマンスが低下する可能性があります。

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f