Try EMQX Platform on Azure, Enjoy AI Integration and Simplified Billing →

MQTTパフォーマンス・ベンチマーク: EMQXとTimescaleDBの統合

EMQX Team
Aug 30, 2023
MQTTパフォーマンス・ベンチマーク: EMQXとTimescaleDBの統合

IoTシナリオでは、多数のデバイス、高いデータ生成レート、そして膨大なデータ量の課題がよくあります。そのため、これら大量のデータにアクセスし、保存、処理する方法は重要な課題となっています。

EMQXは、IoTのための高スケーラブルでパワフルなMQTTブローカーで、単一クラスターで数十億の同時接続と1秒間に数百万のメッセージを処理できます。さらに、組み込みのデータインテグレーション機能により、Kafka、SQL、NoSQL、時系列データベースなど、40を超えるクラウドサービスとエンタープライズシステムとのシームレスなインテグレーションが可能です。

このブログシリーズでは、単一ノードEMQXサーバーとのインテグレーションのベンチマークテスト結果を紹介します。

本記事では、TimescaleDBとのインテグレーションの結果をご紹介します。単一ノードのEMQXが1秒間に10万件のQoS1メッセージを処理し、TimescaleDBに挿入する性能を達成しました。

テストシナリオ

このベンチマークテストは、10万のMQTTクライアントが1秒間に5000の接続レートでEMQXに接続することをシミュレートしています。すべての接続が確立された後、各クライアントは1秒間にペイロード200バイトのQoS1メッセージを1つパブリッシュし、すべてのメッセージはルールエンジンによってTimeScaleDBに書き込まれます。

  • 同時接続数: 100,000

  • トピック数: 100,000

  • CPS(新規接続数/秒): 5000

  • QoS: 1

  • キープアライブ: 300s

  • ペイロード: 200 bytes

  • メッセージ送信TPS: 100,000/second

テスト環境

テスト環境はAlibaba Cloud上に構築されており、すべての仮想マシンはVPC(Virtual Private Cloud)サブネット内にあります。

マシンの詳細

サービス デプロイメント バージョン OS CPU メモリ クラウドホスト
EMQX 単一ノード 5.1.0 Centos 7.8 32C 64G c6.8xlarge
PostgreSQL/TimescaleDB スタンドアローン 13.5 Centos 7.8 16C 64G c6.4xlarge

テストツール

このベンチマークテストでは、MQTTクライアントをシミュレートするためにXMeterを使用しています。XMeterはJMeter上に構築されていますが、スケーラビリティと機能面で強化されています。テスト中に包括的かつリアルタイムのテストレポートを提供します。また、組み込みのモニタリングツールを使用して、EMQXとTimescaleDBのリソース使用状況を追跡できます。

XMeterにはプライベートデプロイメントバージョンとパブリッククラウドSaaSバージョンがあります。このテストでは、EMQXとTimescaleDBと同じVPCにプライベートXMeterをデプロイしています。

準備

EMQXとTimescaleDBのインテグレーション設定の詳細な手順は、EMQXドキュメントを参照してください。以下の3つの図は、このベンチマークテストで使用されたTimescaleDBブリッジの設定です。

TimescaleDBブリッジとルールの設定

TimescaleDB Bridge 1

TimescaleDB Bridge 2

Rule Config

ブリッジとルールが作成されると、ダッシュボードから以下のようなデータフローが確認できます。

data flow

システムチューニングベンチマーク結果

Linuxカーネルチューニングの詳細はEMQXドキュメントを参照してください。

ベンチマーク結果

テスト結果

  • CPUとメモリの使用率は安定

  • CPU使用率平均: 77%

  • メモリ使用量最大: 13GB

  • パブリッシュ応答時間平均: 2.39ミリ秒

テスト完了後、EMQXダッシュボードのデータブリッジ統計とデータベースの対応するテーブルのクエリ数を比較したところ、すべてのメッセージがリアルタイムでTimescaleDBに書き込まれ、正常に処理されたことが確認できました。

結果グラフ

テスト中のEMQXダッシュボードとルールエンジンのスクリーンショット

EMQX Dashboard

Rule Engine

上記2つのスクリーンショットは、入力メッセージレートとデータブリッジによる処理レートが共に10万/秒を超えており、ルールにマッチしたすべてのメッセージがリアルタイムでデータベースに書き込まれていることを示しています。

テスト完了後のスクリーンショット

Screenshots 1

Screenshots 2

上記のスクリーンショットは、EMQXが受信したすべてのメッセージがTimeScaleDBに正常に転送されたことを示しています。

XMeterレポートチャート

XMeter report chart

まとめ

TimescaleDBは時系列データベース分野において、使いやすさ、高速クエリ、コスト効率の高さが認められています。EMQXとTimescaleDBの統合により、両者の強みが活かされ、IoTアプリケーションに対する包括的なソリューションが提供されます。

さらに、EMQXとTimescaleDBはそれぞれクラウドサービスを提供しています。クラウドの一元管理、水平スケーリングなどの機能を活用することで、簡単にEMQX CloudとTimescale Cloudサービスをデプロイおよび統合し、既存のクラウドネイティブインフラストラクチャに接続できます。詳細は当社のブログをご参照ください。

EMQX Enterprise を無料トライアル
任意のデバイス、規模、場所でも接続可能です。
Get Started →