0

独自の単純な負荷テストを作成することを考えています。このテストでは、複数のリクエスト(100〜1000の同時ユーザーなど)でWebサイトにアクセスして、そのパフォーマンスを確認できます。Node.jsを試してみたいのですが、Node.jsはスレッドを使用しないため、それがジョブにとって間違ったテクノロジーであるかどうかわかりません。Node.jsが使用する非同期モデルを使用して、多くのユーザーリクエストをシミュレートできますか、それともRuby / .NET / Pythonなどの別の言語で実行する方が適切ですか?

4

3 に答える 3

1

Nodeは、必要な数のリクエストを実行できます(ただし、のデフォルトを変更する必要がある場合がありますhttp:Agent)。ノードに固有のものよりも、OSが実行できることによって制限される可能性が高くなります(もちろん、このような制限は、使用する他の言語にも適用されます)。

于 2012-10-16T09:02:37.097 に答える
1

Node.jsはこのタスクに最適である必要があります。私は仕事でこれをします。変更する必要がある重要な部分の1つは、httpソケットプールです。次のコードを抜粋すると、プーリングが完全に無効になり、必要に応じてNode.jsプロセスを枯渇させることができます。

var http = require('http');
var req = http.request(..., agent: false)

これについて詳しくは、http.Agentのドキュメントをご覧ください。

スレッドに関する懸念は鋭敏ですが、その制限に達した場合でも(ノードはリソースの効率を維持するのに非常に優れています)、解決策は単純です。負荷テストの複数のインスタンス(プロセス)を開始します。現状では、負荷を正しくシミュレートするために、複数のマシンを完全に使用する必要がある場合があります。

いずれにせよ、これにRubyまたはPythonを使用しても自動的に勝つことはありません。非同期プログラミングはI/Oおよびネットワークにバインドされたタスクに理想的であり、ノードはこれに優れています。同様に、RubyとPythonにはサードパーティの非同期フレームワークがありますが、定義上、Nodeで提供されている標準の非同期フレームワークよりもあいまいです。

于 2012-10-16T09:05:48.397 に答える
0

nodeloadを使用して負荷テストを作成するのは簡単です。

于 2013-02-08T21:13:02.530 に答える