5

レコーダーの実際のネットワーク トラフィックを Web サーバー ログ (Apache) などから Web サーバーに取得し、このトラフィックを再生して、実際の負荷の下で Web アプリケーションをプロファイルする (Perl で) か、選択する前にさまざまな実装の速度をベンチマークして比較する方法はありますか?どちらか一方?

重要な場合、webapp は Perl で書かれており、プレーン CGI、FastCGI、mod_perl (ModPerl::Registry 経由)、PSGI (Plack::App::WrapCGI 経由) で実行されます。

プロのウェブマスターにクロスポスト


サーバー障害に関する同様の質問:

4

5 に答える 5

3

これを Google で簡単にスキャンすると、興味深いブログ エントリが得られ、その後の有益なコメントがhttp://www.igvita.com/2008/09/30/load-testing-with-log-replay/にあります。また、コメンターは、セッションをリアルタイムで記録できるようにする Process-One の Tsungについても言及しました。ただし、既存の Apache アクセス ログではあまり役に立ちません。

于 2010-11-08T17:20:00.067 に答える
2

最近ここにいます。tcpdump を使用して tcp トラフィックをダンプすると、パッケージの宛先を書き換えて、それを新しいアプリ サーバーに再生できると考えました。だから私はこのようなものから始めました:

tcpdump -i eth1 dst -s 0 -w - port 80 | \
tcprewrite --mtu-trunc --infile=- --outfile=- \
--dstipmap=<source_ip>:<destination_ip> | \
tcpslice -w - - | tcpreplay --intf1=eth1 -

さまざまな理由でうまくいかなかったので、さらに掘り下げ始めて、Granify の Leonid Bugaev による小さな Go プロジェクトである Gor を見つけました。

これが最終的に Gor を使用することになった方法です: http://devblog.springest.com/testing-big-infrastructure-changes-at-springest/

そのための Chef クックブックもあります: https://github.com/Springest/gor-chef

お役に立てれば。

于 2013-11-13T11:22:34.760 に答える
1

実際の http トラフィックを記録して再生する簡単な perl の方法を次に示します。

http://patrick.net/sprocket/rwt.html

于 2013-01-09T01:10:45.273 に答える
1

反対側で短い答えが与えられました。

より長い答えは、できないということです。リクエストヘッダーと POST ボディが欠落します。

于 2010-11-08T00:18:50.980 に答える
0

GET リクエストのみが必要で、クエリ パラメータを介してセッション トラッキングが実装されていない場合、これは可能です。

1 つの質問: (1) ページ間の実際のトラフィック分布をエミュレートしたいため、または (2) あらゆる種類のテスト スクリプトの作成を検討するにはページが多すぎるため、このようにしたいですか?

于 2010-11-08T13:18:03.683 に答える