質問

Jmeterを使用して、Apache 2 Webサーバーで実行されているPHPアプリケーションをテストしています。 Jmeterをロードして25個または50個のスレッドを使用できますが、サーバーの負荷は増加しませんが、サーバーからの応答時間は増加します。スレッドが多いほど、応答時間が遅くなります。 JmeterまたはApacheがリクエストを列に並べているようです。 Apache Web Server構成ファイルのMaxClients値を変更しましたが、これは問題を変更しません。 Jmeterが実行されている間、アプリケーションを使用して、立派な応答時間を取得できます。何が与えるのですか?スレッドの数を増やすことで、サーバーに0%アイドル状態に課税できると予想されます。誰かが私を正しい方向に向けるのを手伝うことができますか?

更新:アプリケーションからセッションを削除すると、サーバーの全負荷をシミュレートできることがわかりました。私はセッションを再度に再び可能にし、各スレッドにHTTP Cookieマネージャーを使用しようとしましたが、影響を与えないようです。

役に立ちましたか?

解決

ボトルネックが発生している場所を特定してから、問題を修正しようとする必要があります。

  • JMeterクライアントは、適切に設備の整ったマシンで実行されている必要があります。 JVMを実行しているSolaris/Unixサーバーが好きですが、200未満のスレッドでは、最新のWindowsマシンで問題なく行われます。 Jmeterはボトルネックになる可能性があり、一度有意義な結果は得られません。さらに、別のマシンでテストを行うものまで実行し、同じネットワークで望ましいものにする必要があります。テストリグとサーバーが遠く離れている場合、WANレイテンシは問題になる可能性があります。
  • 2番目に確認するのは、あなたのアパッチワーカーです。 Apacheにはモジュール-mod_status-すべての労働者の状態が表示されます。プールのサイズを低くすることは可能です。 MOD_STATUSから、使用中の労働者の数を確認できます。少数の人には、Apacheはリクエストを処理する労働者がいないので、リクエストは列に並びます。あまりにも多く、Apacheは実行中のボックスのメモリを使い果たす可能性があります。
  • 次に、データベースを確認する必要があります。別のマシン上にある場合、データベースにはIOまたはCPU不足があります。
  • ボトルネックにヒットし、サーバーとDBが同じマシンにいる場合、通常、CPU、RAM、またはIO制限にぶつかります。それらを識別するのが最も簡単な順序でそれらをリストしました。 CPUバウンドアプリを入手した場合、CPUの使用が100%になることを簡単に確認できます。 RAMを使い果たした場合、マシンは交換を開始します。 WindowsとUnixの両方で、利用可能な無料のRAMを見るのはかなり簡単です。最後に、あなたはIOに縛られているかもしれません。これもさまざまなツールや統計を使用して監視できますが、CPUほど明白ではありません。

最後に、特にあなたの質問に対して、際立っていることの1つは、単一のディレクトリに膨大な数のセッションファイルを保存することが可能です。多くの場合、PHPはファイルにセッション情報を保存します。このディレクトリが大きくなった場合、PHPがセッションを見つけるにはますます長い時間がかかります。テストを実行した場合、Cookieがオフになった場合、PHPアプリは、ユーザーリクエストごとに数千のセッションファイルを作成した可能性があります。 Windowsサーバーでは、UNIXサーバーよりも速く遅くなり、ディレクトリが2つのオペレーティングシステムに保存される方法の違いを実行します。

他のヒント

一定のスループットタイマーを使用していますか? Jmeterがスレッドに割り当てられたスレッドを使用できない場合、応答時間にこのキューイングとパンクが表示されます。これが問題であるかどうかを把握するには、より多くのスレッドを追加してみてください。

また、スクリプト内にJavaScript呼び出しがあるときに、このレポートが発生したことを見つけました。この例では、スクリプトの上部にあるJavaScriptコールをテスト計画要素に移動するか、値を事前に計算する方法を探してみてください。

PHPではなくApacheが提供する静的ファイルをチェックして、問題がApache ConfigまたはPHP構成にあるかどうかを確認してください。

また、ネットワーク接続と構成を確認してください。 JMeterテストは、壁にぶつかるまでうまく進んでいました。最終的には、100MBの接続しかないことに気付き、飽和状態になり、ギガビットが修正されました。ネットワークカードまたはスイッチは、特に速度設定が「自動」である場合、あなたが思っているよりも低い速度で実行されている可能性があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top