4

Laravel 5.2 を使用して作成された大規模なアプリケーションがあります。アプリケーションはしばらく「1 日か 2 日」正常に動作しているように見えますが、その後「各リクエスト テーブルが 15 秒以上」遅くなり始めます。

速度低下の原因を突き止めようとしています。手始めに、順番に確認する必要がある「以下」の上位 4 つのカテゴリをリストしました。

  1. SQL サーバーの問題。ロック、実行時間の長いクエリ。
  2. 長時間実行されるループのような余分な/不要な作業を引き起こす可能性のある PHP の問題
  3. メモリ リークや応答時間の遅延などの Web サーバーの問題。
  4. ネットワークの問題。

最初のカテゴリ「SQL の問題」については、すべてのクエリを評価しましたが、すべてが軽く、かなり速いようです。長時間実行されるクエリはなく、SQL ロックも見つかりません。これを可能性のある問題として排除しませんでしたが、今のところ、他の場所を探すのは公平です. アプリケーションが大量のクエリを生成していることに注意してください。これは、N+1 のケースに遭遇している可能性があることを示唆しています。

カテゴリ 3 と 4 は重要ですが、2 番目のカテゴリである「コードの問題」に焦点を当てたいと思います。コードに問題があるかどうかを判断するために、いくつかのことを理解できる必要があります。ここに私が知りたい/ログを開始したいことがいくつかあります。

  1. 各クラスの実行にかかる時間。実行に時間がかかるかどうかを確認します。
  2. N+1 ケースのソースを特定できる各クラスから生成されたすべてのクエリの数/リスト。

Google Chrome で Clockwork 拡張機能を使用しているため、ログの作成に役立ちます。しかし、クラスレベルで結果を分析することはできません。これにより、何が起こっているのかを深く理解できます。

上記の2つのアイテムをどのように集めることができますか? Clockwork にフックして、その情報をフィルターとして追加し、その情報をすべて Google 拡張機能に表示することはできますか?

4

0 に答える 0