# Serverless TPS 达到限制告警处理指南

Serverless TPS 达到限制告警表示 EMQX Cloud Serverless 部署在实时消息处理过程中，消息吞吐量（TPS）已达到或超过部署规格所允许的上限（1000 TPS）。

该情况通常意味着当前消息吞吐量已达到部署规格上限，可能导致消息发布被丢弃，从而对业务产生影响。常见问题包括业务高峰期消息量突增，或客户端 SDK 异常导致消息发布速率过快。

## 消息在短时间内突增

### 问题描述

在业务高峰期或批量任务触发时，可能会在短时间内集中发布大量消息，导致实时消息 TPS 短时超过 Serverless 部署规格上限，从而触发告警。

在部署**概览**页面中，若观察到实时消息上下行 TPS 达到或超过部署上限，则通常符合此类情况。

### 常见原因

- 业务高峰期消息集中发布。  
- 批量任务或定时任务在短时间内触发。  

### 处理方法

- 提前根据业务规模评估消息量峰值。  
- 在持续高吞吐场景下，按需切换为**专有版部署**并进行扩容，以满足业务需求。  

## 客户端发布速率过快

### 问题描述

部分客户端未进行速率控制，在极短时间内持续高速发布消息，可能导致单个或少量客户端占用过多 TPS 资源，从而触发整体 Serverless TPS 达到限制告警。

在部署**概览** 页面中，若实时消息上下行 TPS 达到或超过部署上限，并且整体连接数变化不明显，则通常需要进一步排查客户端发布行为。

### 常见原因

- 客户端逻辑异常，导致同一条消息被重复发送。  
- 客户端未实现发布速率限制机制。  

### 处理方法

- 检查客户端逻辑，确认是否存在重复发送消息的情况。  
- 在客户端侧增加发布速率限制机制，避免过快的消息发布对系统造成冲击。  
- 结合发布速率限制相关日志，根据 `clientid` 在**监控** -> **客户端**页面中定位发布量异常的客户端。  

## 排查步骤

1. 登录 EMQX Cloud 控制台。

2. 打开部署**概览** 页面，查看**消息上下行 TPS** 指标，确认实时 TPS 是否达到或超过部署规格上限。

![sls_tps_limit_overview](./_assets/sls_tps_limit_overview.png)

## 监控与统计

- 在 EMQX Cloud 控制台的**指标** -> **实时指标** -> **总 TPS** 中，可以查看当前实时 TPS 数据，用于判断是否仍处于高负载状态。

![sls_tps_limit_stats](./_assets/sls_tps_limit_stats.png)

- 在 EMQX Cloud 控制台的**指标** -> **时间轴** -> **消息流入流出**中，可以查看基于时间轴的整体消息数量变化趋势。可通过某一时间节点的总消息数除以 60 秒，计算该时间点的每分钟平均 TPS 值。

![sls_tps_limit_monitor](./_assets/sls_tps_limit_monitor.png)

## 告警影响说明

- Serverless TPS 达到限制告警仅适用于 **EMQX Cloud Serverless 部署**。  
- 告警触发后，部署不会停止服务，也不会因此立即产生额外计费。  
- 若 TPS 长时间持续超过部署规格上限，可能导致消息被丢弃，从而对业务稳定性产生影响，建议尽快进行排查与优化。