0

200.000 の同時接続で 4 コアの Amazon EC2 インスタンス (m3.xlarge) をリソースの問題なしで実行しています (各コアは 10-20%、メモリは 2/14GB)。とにかく、CPUコアで最初に接続されたすべてのユーザーにメッセージを送信すると、ミリ秒以内にメッセージを取得しますが、最後に接続したユーザーは1〜3秒の遅延でメッセージを取得し、各CPUコアは1〜2秒間100%になります. この問題は、「わずか」50k の同時ユーザー (コアあたり 12.5k) でも気付きました。

遅延を減らすには?

redis-adapter を mongo-adapter に変更してみましたが、違いはありませんでした。

このコードを使用して、複数の CPU コアでスティッキー セッションを取得します。

https://github.com/elad/node-cluster-socket.io

テストは非常に単純でした。クライアントは接続するだけで、それ以上何もしません。サーバーはメッセージをリッスンするだけで、すべてに送信します。

編集: 50,000 クライアントでクラスター/アダプター ロジックを使用せずにシングル コアをテストしましたが、結果は同じでした。

サーバー、シングルコアサーバー、ベンチマーク、および html クライアントを 1 つのパッケージで公開しました: https://github.com/MickL/socket-io-benchmark-kit

4

1 に答える 1