0

Websocket サーバーのキャパシティー・テストを検討していますが、どこから始めればよいかわかりません。

使用状況をテストするためにメッセージを送信する AI を作成することはできますが、100、500、1000 の接続などをシミュレート/作成するにはどうすればよいでしょうか?

4

4 に答える 4

1

少し前に、socket.io ライブラリを使用してサーバーに対して数千の接続をロード テストしなければならなかったときに、同様の問題が発生しました。これを行うための既製のソリューションを見つけることができなかったため、最終的に Node.js といくつかの for ループを使用して独自のテストを構築することになりました。

Node の利点は、クライアント側の JavaScript をほとんどコピーしてサーバー コードに貼り付けることができるため、クライアントをシミュレートするのが非常に簡単で、複数の接続を確立して負荷を生成するだけでよいことです。これは、必要な JavaScript を実行してソケット接続を確立するための迅速かつ簡単な方法です (これがソケットへの接続方法であると仮定します)。

私が思いついた落とし穴は、600 を超えるリスナーを実行することで、ノード ボックスの CPU を使い果たす傾向がありましたが、AWS マジックを少し使ってそれを解決しました。

もう 1 つの問題は、結果の報告です。少なくとも古典的な意味では、ソケット接続には応答時間の概念がまったくないため、少なくともクライアント側の観点からは、いつ問題が発生するかを知るのは困難です。しかし、サーバーを監視することで、いつ接続が失敗したか、いつリソースが不足し始めたかを確認することができました。これは、サポートできる接続数をベンチマークするのに十分でした.

于 2013-09-22T17:13:51.193 に答える
0

この目的のために JMeter を使用し、ここから WebSocket サンプラー プラグインを取得できます: http://github.com/maciejzaleski/JMeter

その数の接続 1000 では、タスクを達成するために複数のエージェント マシンが必要になる場合があります。これは必ずしも専用サーバーである必要はありません。エージェントをいくつかのワークステーション (開発者/テスター マシン) に展開し、それらをテスト目的で使用できるからです。テストの実行を時間外にスケジュールすることで、影響を制限できます。

于 2014-01-23T10:53:41.110 に答える
0

Jmeter plugin is having severe limitations with number of concurrent users. It was working well only till ~450 users. Then I tried with artillery library(https://artillery.io/docs/testing_websockets.html) but this library also has restrictions with loops with their web socket package.

于 2016-11-24T13:53:43.127 に答える