実際の負荷テストを行うために、サーバーでApacheアクセスログを再生するにはどうすればよいですか?


13

HTTPサーバーの負荷テスト用ツールを見ましたか?しかし、これらのツールで既存のログを再生する方法がわかりませんでした。既存のJMeterおよびABテストのものでは再現できない特定のロード操作でのみ発生するバグがあります。

私は単にツールにaccess_logsを与えて、それをより速くまたは同じ速度で再生させたいと思います。

回答:


14

JmeterのAccess Log Samplerコンポーネントを使用できます。

このPDFでの使用に関する短いチュートリアルがあります。


3
私はこれを試しましたが、うまく動作させることができなかったので、明らかに私はバカでなければなりません。私はinsom.me.uk/z/2009/02/で
スチュワートロビンソン

元のリンクが死んでいるので、ここでのリンクがあるarchive.org:web.archive.org/web/20090305084634/https://www.insom.me.uk/...
Waltyヨン

わかりました。他の人がこれを見つけた場合、このスクリプトにはスレッド処理に問題があります。一つは、交換する必要があるかもしれないthreadとlibがthreadingLIB(stackoverflow.com/questions/19558401/...
Waltyヨン

1

アクセスログにあるのはGETリクエストだけであり、ログのタイムスタンプの解像度の限界でリクエストが集中することを気にしないと仮定すると、$ SCRIPTING_LANGUAGEの約10行がトリックを行うはずです。POST、Cookie、HTTP認証、およびより微妙なタイミングは、はるかに興味深い演習です。


-1

これには、httpログの再生をサポートする負荷テストアプリなどのプログラムが必要です。そのようなアプリの1つがHTTPerf(https://github.com/httperf/httperf)です。

ハウツー記事はhttps://www.igvita.com/2008/09/30/load-testing-with-log-replay/にあります


1
実際の説明が含まれていれば、これははるかに良い答えになります。ここでは、外部のWebサイトへの単純なリンクはお勧めしません。Webサイトはしばしば消滅する可能性があるためです。
マイケルハンプトン

-2

私は少し違うことをします。私はあなたの質問を理解していますが、サーバーのロードを検討している場合は、「ab」ツールを調べてください。ほとんどのApacheのインストールに付属しています。ランニング:

ab -c 15 -n 1000 http://site.name/

一度に15リクエストを行う1000リクエストを実行します。私はこれがあなたの探しているものと正確には一致しないことを知っています、そしてこれはあなたが与えた1つのアドレスだけを問い合わせます。ロードが必要な場合、これは簡単な方法で簡単に実行でき、デバッグに役立つ可能性のある統計情報を提供します。


「[...] ABテスト[...]で再現できないバグがある」という質問の場合、なぜABを使用することをお勧めしますか?
ウォンブル

ツールにリストされているABを見逃しました。:pそれは編集だったと言いたいのですが、正直なところ自分ではわかりません。
TrueDuality

-2

独自に開発してみませんか?ログを取得します。解析します。URIを取得します。curl呼び出しを行います。これをphpで記述し、並行処理のためにapacheで実行できます。

ログがgz形式の場合は、zcatを実行し、readlog機能を使用します。それはURLを提供します。次に、phpCurlを使用してURLにアクセスします。スループットを高めるには、apacheで実行します(abを使用してロードします)。


1
次に、ロードテストを行う2つのアプリケーションを用意します。それはねじれます。
スチュワートロビンソン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.