4

シミュレートされたユーザー負荷を使用してサイトの負荷テストを行う必要があります。このために、平均的なユーザーの特定の10分間の使用量についてWebサーバーのログを記録し、これを使用して複数の同時スレッドで再生し、現実的な負荷をシミュレートする予定です。

これが私が見て拒否したツールです:

Apacheベンチマーク...ダムリクエストでサーバーをヒットするようにプログラムできます...しかし、ユーザーの負荷をシミュレートすることはできません。

HTTPerf-平均的なユーザーをシミュレートするための入力としてユーザーログを取得できますが、ログからのリクエストURLのみを使用します...リクエスト時間は使用しません。

Tsung -HTTPerfと同じ問題...ユーザーセッションを記録できます...しかし、ユーザーの「考える」時間をプログラムする必要があります...

JMeterはユーザーセッションログを入力として受け取ることができます。「考える」時間を含むユーザーセッションをシミュレートできるかどうかはわかりません。

要約すると...「ログの再生」を提供するツールはたくさんありますが、それらはすべて、ユーザーセッションをシミュレートするためのリクエストURLのみを収集するためにログを使用しているようです。実際にタイムスタンプを使用して実際のユーザーとその「思考」時間をシミュレートするものはありません。

  1. JMeterは私が試したことがない唯一のツールのようです。JMeterはこの問題を解決しますか?
  2. これは、サーバーログでsed / awkを使用し、rubyスクリプトを作成してリクエストURLと「思考」時間を解析し、同時スレッドを起動することで簡単に解決できますか?

他の提案も大歓迎です。

4

6 に答える 6

1

同様の問題がありました-すべてのギャップをそのまま維持して、本番サーバーからログを再生するツールが必要でした。また、いくつかの http ヘッダーを操作したいと考えていました。

システム管理者として、最初に ab を使用して bash でスクリプトを作成しました。スピード感がすごかったじゃないですか。

Jmeter は、使い方が簡単であれば素晴らしいものです。

そのため、ログを再生してテストをロードするための独自のツールを作成することになりました。ルビーで書かれています。ログを再生するツールはほとんどの時間を CPU ではなくネットワーク io 待機に費やすことを考えると、Ruby GIL は問題になりません。マルチスレッドで、ログをそのまま再生し、ログエントリ間のギャップを考慮します:)

varnish を実行している場合は、varnishncsa を使用してリアルタイムで再生することもできます。github にアクセスできます: https://github.com/maxchk/grad

これが役立つことを願っています。

于 2013-09-17T01:30:12.803 に答える
1

JMeter は、一定のランダムな詳細をテスト計画に挿入することができます。4.4 タイマー、特に18.6 タイマーを確認してください。

  • コンスタントタイマー

  • ガウスランダムタイマー

  • 一様ランダムタイマー

  • コンスタント スループット タイマー

  • 同期タイマー

  • BeanShell タイマー

  • BSF タイマー

  • JSR223 タイマー

  • ポアソンランダムタイマー

于 2012-04-30T07:02:50.043 に答える
1

JMeter にもう 1 票。必要なものに適したツールです。ただし、ツールに関係なく、あなたのアプローチについて一言: 残念ながら、ツールを Web サーバー ログに向けるだけで有効な負荷テストを取得することは実際には不可能です。ログに保存されているデータが十分ではなく、それを提供できません (すべてのページが完全に静的である場合を除きます)。

しかし、それほど難しいことではありません。重要な点は、サイトでサポートするピーク スループット (リクエスト/秒) を特定し、ペーシング (タイマー) とユーザー (スレッド) を使用して、これを表すテストを作成することです。JMeter を使用すると、コンスタント スループット タイマーが特に役立ちます。

ノート。このピーク スループット レベルを正しく設定することが重要です。そうしないと、負荷が高すぎる (問題ではない問題を解決するために時間を浪費する) か、低すぎる (実際の問題である問題が見つからない) ことになります。サイトの使用状況を示すアクセス ログが既にある場合は、少し保守的に考えれば問題ありません。

于 2012-05-05T15:52:44.980 に答える
0

もしかしてゴル?

Gor は、実際のデータを使用してシステムを継続的にテストするために、ライブ HTTP トラフィックをキャプチャしてテスト環境に再生するためのオープンソース ツールです。コードの展開、構成の変更、およびインフラストラクチャの変更の信頼性を高めるために使用できます。 https://goreplay.org

gradそうでなければ、爆撃機についての答えも素晴らしいようです。

于 2016-11-07T00:08:47.180 に答える