MQTTパフォーマンス・ベンチマーク: EMQX 単ノードで500万MQTTクライアント同時接続をサポート
本記事では、EMQXの接続性能のベンチマーク結果を紹介します。単一ノードのEMQXが500万の同時接続を処理できることが実証されています。
テストシナリオ
このベンチマークテストは、500万のMQTTクライアントが1秒間に5000の接続レートでEMQXに接続することをシミュレートしています。
同時接続数: 500万
接続レート: 5000回/秒
認証: なし
キープアライブ: 300秒
クリーンセッション: true
テスト環境
テスト環境はAlibaba Cloud上に構築されており、すべての仮想マシンはVPC(Virtual Private Cloud)サブネット内にあります。
マシンの詳細:
ブローカー | デプロイメント | バージョン | OS | CPU | メモリ | クラウドホストモデル |
---|---|---|---|---|---|---|
EMQX | 単一ノード | 5.0.21 | RHEL 8.5 | 64C | 128G | hfc6.16xlarge |
テストツール
このベンチマークテストでは、MQTTクライアントをシミュレートするためにXMeterを使用しています。XMeterはJMeter上に構築されていますが、拡張性と機能面で強化されています。テスト中に包括的かつリアルタイムのテストレポートを提供します。また、組み込みのモニタリングツールを使用してEMQXマシンのリソース使用状況を追跡できます。
XMeterにはプライベートデプロイメントバージョン(オンプレミス)とパブリッククラウドSaaSバージョンがあります。今回のテストでは、EMQXと同じVPCにプライベートXMeterをデプロイしています。
システムチューニング
Linuxカーネルチューニングについては、EMQXドキュメントを参照してください。
ベンチマーク結果
EMQXダッシュボードは、500万以上の同時接続が達成されており、30分間のテスト全体を通して接続が非常に安定していることを示しています。
メトリクス
接続応答時間の平均 | 2.93ms |
---|---|
CPU使用率の平均 | 14% |
CPU使用率の最大値 | 40% |
全クライアント接続後のメモリ使用量の平均 | 48.7GB |
メモリ使用量の最大値 | 51.4GB |
まとめ
このベンチマークレポートは、単一ノードのデプロイメントでのEMQXの同時接続性能を示しています。EMQXは、より少ないマシンを使用して、より大規模なIoTアプリケーションを構築するのをユーザーに支援し、総コストを削減するのに役立ちます。