4

私は、TCP エコー サービスとして機能するアプリケーションを作成した TCP サーバーの実装を作成しました。

今、私はこのエコーサーバーを次のようにテストしたいと思います

  • 処理できる接続数
  • 応答時間はどのくらいですか
  • メモリと CPU の使用量

このエコー サーバーをテストするための標準的な方法/ツールを提案してください。TCP とエコー サーバーの実装はどちらもかなり標準的な方法であることを理解しているので、それをテストするための確立されたツールを見つけたいと思っています。

PS: 独自のテスト アプリケーションを作成することはできますが、何か問題が発生した場合は、自分のサーバーが間違っていることを確認する必要があるため、そうしたくありません。最初にテスト クライアントをテストして終わりたくありません。

この実装は C# と .NET 3.5 を使用して作成しましたが、質問を参照しても問題ないと思います。

4

2 に答える 2

6

役立つ無料ツールがあります。C++ サーバー フレームワークで構築されたサーバーのテストに使用します。このツールはhttp://www.lenholgate.com/blog/2005/11/windows-tcpip-server-performance.htmlから入手できます。これにより、構成可能な速度でターゲット サーバーへの構成可能な数の接続を作成し、各接続でデータを送信できます (これも構成可能な速度で)。

それを使用する最良の方法は、サーバーとは別のマシンで実行することであり(かなり明白ですが...)、複数の異なるマシンで複数のコピーを実行することです。約 4000 を超える接続を確立できない場合はMAX_USER_PORT、クライアントを実行しているマシンでレジストリ設定を微調整する必要がある可能性が高いことに注意してください。

TCP コードをテストしたら、サーバーがサポートするプロトコルをテストする必要があることに気付くかもしれません。CodeProject ( http://www.codeproject.com/KB/IP/testingsocketservers.aspx ) で入手できる C# で、この種の状況のた​​めのテスト ツールを作成しました。これにより、プロトコルをサポートする「プラグイン」を作成し、プロトコルに依存しないもの (多数の接続、断片化された読み取りを取得するためのメッセージの分割など) を処理できます。この設計は、接続ごとのスレッド設計がやや厄介であり、接続数が多い場合は、非同期設計を使用して何かを再実装する方がよいでしょうが、そのための C++ ツールがあるため、このテスト プログラムを変更することはできませんでした.. .

于 2009-12-01T08:46:48.493 に答える
0

以前と同じ状況で、私は FunkLoad を使用しました。小さなクライアントを Python コードのスニペットとして記述できる場合、FunkLoad はサーバーに対して必要な数のクライアントを実行し、結果をグラフ化します。

https://funkload.nuxeo.org/

一連のテスト サーバーに対する完全に練り上げられた例は、私の著書「Python ネットワーク プログラミングの基礎」の第 2 版の目玉です。その公開ソース コード リポジトリが役立つ場合があります。

https://github.com/brandon-rhodes/fopnp/tree/m/py2/chapter07

于 2014-07-17T16:50:55.010 に答える