web-dev-qa-db-ja.com

Nodejs&Socket.ioがサポートできるユーザーの数は?

Broadcast.emitを実装するWebサイトを入手しました。サイトのすべてのユーザーにメッセージを送信します。これはsocket.ioの最も単純な実装ですが、現在問題があります。約100人の同時ユーザーにヒットしたとき。 nodejsサーバーは、ハングアップしてWebサイト全体にアクセスできなくなるまで遅延し始めます。サーバーを確認したところ。 nodejsがCPUを100%使用しています。正常ですか?

Socket.ioは何人のユーザーをサポートできますか?そして、これが起こったとき、nodejsサーバーをプログラムで再起動する方法はありますか?

22
3s2ng

少なくとも250k 同時接続(およびほとんどのユースケースでボトルネックはメモリです)

17
Andrey Sidorov

私はマルチプレイヤーカードゲームを持っています。 Socket.ioは私のCPUを最大3000人の同時ユーザーで最大にします。これはIntel i7 CPU上にあります。このため、負荷を処理するために複数のnode/socket.ioプロセスを実行する必要があります。

100の同時接続の場合は問題ありません。おそらく、いくつかのVPSを使用していて、CPUは他のすべてのVMと共有されていますか?専用サーバーを運用していますか?

また、コードを確認してください。あなたは非同期に行くべきであるいくつかのものを同期的に行っているかもしれません。

20
Milan Babuškov

メッセージを落とさずにすべてのクライアントに配信することが重要ですか?いいえの場合、socket.volatile.emit呼び出しを使用することをお勧めします。リモートクライアントや不安定な接続では多くの問題が発生する可能性があります。

3
Yuri Lapitsky