2

Jmeterを使用して、Apache2Webサーバーで実行されているPhpアプリケーションをテストしています。Jmeterをロードして25または50スレッドを使用できますが、サーバーの負荷は増加しませんが、サーバーからの応答時間は増加します。スレッドが多いほど、応答時間は遅くなります。JmeterまたはApacheがリクエストをキューに入れているようです。Apache Webサーバー構成ファイルのmaxclients値を変更しましたが、これで問題が変わることはありません。Jmeterの実行中に、アプリケーションを使用して、かなりの応答時間を得ることができます。何が得られますか?スレッドの数を増やすことで、サーバーに0%のアイドル状態まで課税できると期待しています。誰かが私を正しい方向に向けるのを手伝ってもらえますか?

更新:アプリケーションからセッションを削除すると、サーバーの全負荷をシミュレートできることがわかりました。セッションを再度有効にして、スレッドごとにHTTP Cookie Managerを使用しようとしましたが、影響がないようです。

4

3 に答える 3

4

ボトルネックが発生している場所を特定し、問題の修復を試みる必要があります。

  • JMeter クライアントは、設備の整ったマシンで実行する必要があります。私は JVM を実行する Solaris/Unix サーバーを好みますが、200 未満のスレッドの場合は、最新の Windows マシンで十分です。JMeter はボトルネックになる可能性があり、ボトルネックになると意味のある結果が得られません。さらに、テストとは別のマシンで実行する必要があり、同じネットワーク上で実行することをお勧めします。テスト装置とサーバーが離れていると、WAN の遅延が問題になる可能性があります。
  • 2 番目に確認することは、Apache ワーカーです。Apache には mod_status モジュールがあり、すべてのワーカーの状態を表示します。プール サイズの設定が低すぎる可能性があります。mod_status から、使用中のワーカー数を確認できます。少数にすると、Apache にはリクエストを処理するワーカーがなくなり、リクエストがキューに入れられます。多すぎると、Apache が実行されているボックスのメモリを使い果たす可能性があります。
  • 次に、データベースを確認する必要があります。別のマシン上にある場合、データベースの IO または CPU が不足している可能性があります。
  • ボトルネックにぶつかり、サーバーとデータベースが同じマシン上にある場合、通常、CPU、RAM、または IO の制限に達します。分かりやすい順に並べてみました。CPU バウンドのアプリを取得すると、CPU 使用率が 100% になることが簡単にわかります。RAM が不足すると、マシンはスワッピングを開始します。Windows と UNIX の両方で、使用可能な空き RAM を簡単に確認できます。最後に、IO バウンドになる可能性があります。これもさまざまなツールや統計を使用して監視できますが、CPU ほど明白ではありません。

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

于 2010-01-10T10:44:49.793 に答える
2

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

また、スクリプト内に JavaScript 呼び出しがある場合に、この問題が発生するという報告も見つけました。この場合、javascript 呼び出しをスクリプトの先頭にあるテスト計画要素に移動するか、値を事前に計算する方法を探します。

于 2010-05-21T13:20:21.910 に答える
0

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

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

于 2010-01-10T01:36:13.347 に答える