一度記録し、strace を使用して、PHP がシステム リソースを過剰に占有する問題を診断します。

WBOY
リリース: 2024-05-03 16:31:14
転載
958 人が閲覧しました

ローカル環境: redhat6.7 システム。 nginx1.12.1、php7.1.0、コードは yii2 フレームワークを使用します

質問: ローカル Web サイトでは elasticsearch サービスを使用する必要があります。 PHP がローカル サーバー上に構築された elasticsearch を使用する場合、ローカル負荷は正常です。 AWS の elasticsearch サービスを使用すると、ローカル サーバーの負荷が高すぎることがよくあります。 nginx と php のログを確認して、例外が見つからないことを確認します。システム内の同時接続数も多くありません。そんなとき、上司から教えてもらったstrace診断ツールを思い出しました。

デバッグプロセス:

  • php の子プロセス ID を検索します
  • strace -cp pid トレースプロセス呼び出し

その時のシステム負荷:

一度記録し、strace を使用して、PHP がシステム リソースを過剰に占有する問題を診断します。

strace デバッグ プロセス

一度記録し、strace を使用して、PHP がシステム リソースを過剰に占有する問題を診断します。

ここでは、php が elasticsearch を呼び出すときにローカルでファイルを検索しますが、このファイルは存在しないことがわかります。これにより、サーバーの負荷が高くなります。 aws elasticsearch とローカル es クラスターの違いを比較してみます。呼び出し方法が違うだけだったことが分かりました。このコードは https メソッドを使用して呼び出されるため、証明書ライブラリ ファイルがローカルで検索されます。すぐに開発チームに連絡し、呼び出し方法を http に変更してしばらく観察したところ、サーバーの負荷は正常に戻りました。

リーリー

一度記録し、strace を使用して、PHP がシステム リソースを過剰に占有する問題を診断します。

以上が一度記録し、strace を使用して、PHP がシステム リソースを過剰に占有する問題を診断します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:linuxprobe.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート