Skip to content

TPS制限到達アラート

TPS制限到達アラートは、過去30分間にEMQX Cloudデプロイメントで処理されたMQTTメッセージの入出力の平均TPSが、現在のデプロイメント階層で許可されているTPS制限を超えたことを示します。

この状態は、メッセージのスループットがデプロイメントの制限に達していることを意味します。制限を超えたメッセージはドロップされる可能性があります。一般的な原因としては、業務ピーク時のトラフィックスパイク、クライアントの過剰なパブリッシュ速度、サブスクライバー数やサブスクリプション範囲の増加によるアウトバウンドトラフィックの大幅な増加などがあります。

メッセージトラフィックの急増

症状

業務ピークやバッチジョブにより、クライアントが短時間に多数のメッセージをパブリッシュし、一時的にTPSがデプロイメントの制限を超えることがあります。

デプロイメントのOverviewページでは入出力メッセージのTPSが階層制限を超えて表示され、Monitor -> Metrics -> Timeline -> Message In/Outでは明確なスパイクが確認できます。

主な原因

  • 業務ピーク時にメッセージが集中する。
  • バッチやスケジュールジョブが同じ短時間内に開始される。

対応策

  • ピーク時のメッセージスループットを事前に見積もる。
  • トラフィックピーク前にデプロイメントをスケールし、十分なスループットを確保する。

クライアントの過剰なパブリッシュ速度

症状

あるクライアントがレート制限なしに高頻度で連続的にパブリッシュし、TPS容量を過剰に消費している場合があります。

デプロイメントのOverviewページで入出力TPSが階層制限を超えている場合、Deployment Logsを開き、クライアントがパブリッシュレート制限を超えたためにメッセージがドロップされたログを確認してください。

ログのclientidを使い、Monitor -> Clientsで該当クライアントを特定します。1つのクライアントのパブリッシュメッセージ数が予想より大幅に多い場合、そのクライアントが原因である可能性が高いです。

主な原因

  • クライアントの不具合により同じメッセージを繰り返し送信している。
  • クライアント側でパブリッシュレート制限を実施していない。

対応策

  • 重複メッセージをパブリッシュするクライアントロジックを修正する。
  • クライアント側でパブリッシュレート制限を追加する。
  • EMQX Cloudテクニカルサポートにサポートチケットを提出し、リスナーのクライアントごとのパブリッシュレート制限調整を依頼する。

サブスクライバー数またはサブスクリプション範囲の増加

症状

サブスクライバー数が増加したり、クライアントが#+を含む広範囲のトピックフィルターをサブスクライブすると、1つのインバウンドメッセージがより多くのサブスクライバーに配信されます。これによりアウトバウンドメッセージが増加し、平均TPSがデプロイメント制限を超えることがあります。

Monitor -> Metricsではアウトバウンドメッセージ数がインバウンド数を大幅に上回り、総TPSが階層制限を超えます。また、SubscriptionsConnectionsに同時期の変化が見られます。

主な原因

  • 多数の新規サブスクライバーが追加された。
  • クライアントが広範囲のトピックフィルターをサブスクライブした。
  • ワイルドカードサブスクリプションが過剰に多く、メッセージ配信範囲が大幅に拡大した。

対応策

  • 最近クライアントやトピックサブスクリプションが追加されたか確認する。
  • トピック設計を見直し、不要なワイルドカードサブスクリプションを削除する。
  • 多数のサブスクリプションや高いファンアウトを持つワークロードを分散させるか、負荷に対応可能な階層へデプロイメントをアップグレードする。

トラブルシューティング

  1. EMQX Cloudコンソールにログインします。

  2. Monitor -> Alerts -> Alert Listに移動し、TPS制限到達アラートが存在するかを確認します。トリガー期間と範囲を確認してください。過去30分間の平均TPSがデプロイメント階層で許可された最大TPSを超えた場合、このアラートが発生します。

    TPS limit alert records

  3. Monitor -> Clientsに移動し、クライアントごとのメッセージメトリクスを確認します。1つのクライアントが予想よりはるかに多くのPUBLISHパケットを送受信している場合は、「過剰なクライアントパブリッシュ速度」シナリオを調査してください。

    Per-client message metrics

監視と統計

Metrics -> Timeline -> Message In/Outに移動し、時間経過に伴う全体のメッセージ量を確認します。ある時点の総メッセージ数を60秒で割ることで、その分の平均TPSを計算できます。

特定の期間における詳細なデプロイメントTPSデータが必要な場合は、EMQX Cloudテクニカルサポートにサポートチケットを提出してください。

Message volume on the monitoring timeline

影響

  • このアラートが発生してもデプロイメントは継続稼働し、アラート自体による追加料金は発生しません。
  • TPSがデプロイメント階層の制限を超え続ける場合、制限を超えたメッセージがドロップされ、アプリケーションに影響を与える可能性があります。
  • アプリケーションで継続的に高いスループットが必要な場合は、事前に計画してデプロイメント階層をアップグレードしてください。