🔌WebSocket同時接続負荷計算機

同時接続数とメッセージ量を入力するとサーバー負荷と必要台数がわかります。

項目
秒間総メッセージ処理量-件/秒
秒間必要帯域幅- MB/s
推奨サーバー台数-

WebSocketサーバーは何人まで耐えられるのか

HTTPと違い、WebSocket(ウェブソケット)は接続がずっと維持されるプロトコルです。接続者がページを離れない限り、サーバーはその接続のためのメモリとリソースを継続的に占有しなければなりません。そのため同時接続数が増えるほどメモリ使用量とメッセージ処理負荷が線形的に増加し、ある時点でサーバー1台の限界を超えてしまいます。

この計算機は同時接続数、接続当たりのメモリ使用量、1人当たり秒間メッセージ数、メッセージ平均サイズを入力して、予想総メモリ使用量と秒間必要帯域幅を計算します。また、サーバー1台が通常安定して処理できる同時接続数を1万人と仮定し、推奨サーバー台数も一緒に提示します。実際の限界値はサーバースペック、イベントループの処理方式、メッセージ処理ロジックによって変わるため、参考値として活用してください。

同時接続者が多いサービスなら、接続維持方式を最適化することが重要です。不要なheartbeat周期を延ばしたり、メッセージをバッチでまとめて送信したり、アイドル接続を自動終了するポリシーだけでもメモリと帯域幅の使用量を大きく減らせます。トラフィックの増加が予想される場合は、ロードバランサーの後ろに複数台のサーバーを配置する水平拡張(スケールアウト)構成を事前に準備するのが安全です。

よくある質問

サーバー1台が処理できる接続数は決まっていますか?

サーバースペックとアプリケーション構造により異なりますが、この計算機は一般的な基準として1万人をデフォルト値に使用します。

メモリ使用量を減らす方法はありますか?

heartbeat周期の調整、アイドル接続の終了、メッセージのバッチ送信などで接続当たりのリソース使用量を減らせます。

帯域幅もサーバー負荷に影響しますか?

はい。メッセージの頻度とサイズが大きくなるほどネットワーク帯域幅の使用量も増加するため、一緒に考慮する必要があります。