目录

性能指标

简述所涉业务在性能统计中的指标视角。

核心关注: 推理速度、显存瓶颈、生成质量。

这部分指标主要用于衡量底层硬件(GPU/NPU)的理论计算上限。

定义: 处理器每秒钟能完成的操作次数(TOPS 指整数运算,TFLOPS 指浮点运算)。

  • 核心理解: 这是衡量 AI 显卡“算力”最粗犷的指标。
    • 精度陷阱: 谈论算力必须挂钩精度(Precision)。通常 INT8 用于推理,数字看起来很大;而 FP16/BF16 用于大模型训练和高质量推理,数值会比 INT8 小很多。
    • 算力利用率: 实际运行中,受限于代码优化,很难达到理论峰值(通常能达到 50%~70% 就算优秀)。

定义: 显存与计算核心之间每秒能传输的数据量(单位:GB/s 或 TB/s)。

  • 核心理解: 在大模型(LLM)时代,带宽比算力更重要
    • 瓶颈效应: 很多时候 GPU 算力还没跑满,但因为数据搬运速度跟不上(Memory-Bound),导致计算核心在“等”数据。
    • 硬件区分: 采用 HBM3 显存的显卡(如 A100/H100)带宽远高于普通显存,因此处理大模型的效率极高。

这部分指标直接反映了 AI 服务的实际运行效率,决定了用户端的使用体验。

定义: AI 模型每秒生成的 Token(字词片段)数量,即生成的“语速”。

  • 核心理解: AI 界的“吞吐量”。
    • 体感标准: 正常人类阅读速度约 5-10 tokens/s。如果 TPS < 5,用户会感到明显的打字机式卡顿。
    • 计算公式: $TPS = \frac{\text{生成的总 Token 数}}{\text{生成耗时 (s)}}$。

定义: 从用户发送请求到系统输出第一个字符所花费的时间。

  • 核心理解: AI 界的“响应时间(RT)”。
    • 心理预期: 用户最焦虑的时间段。即使后续生成的 TPS 很高,如果 TTFT 超过 3 秒,用户也会认为系统响应慢。
    • 处理阶段: 这个阶段包含了“预填充(Prefill)”过程,即模型解析用户输入的所有提示词。

定义: 运行模型时,显存被占用的百分比。

  • 核心理解: 决定了模型能否跑起来、能跑多大的并发。
    • 显存构成: $\text{总占用} = \text{模型权重静态占用} + \text{KV Cache 动态占用} + \text{激活值占用}$。
    • 风险: 显存一旦溢出(OOM),服务会直接崩溃。

核心关注: 包转发效率、物理信号质量、链路拥塞。

这部分指标衡量网络设备在处理高密度数据流时的“硬实力”。

定义: 设备每秒能够处理并转发的数据包数量。

  • 核心理解: 相比带宽(bps),PPS 更能体现网络设备的 CPU/ASIC 处理压力。
    • 小包痛点: 同样是 1Gbps 的流量,如果全是 64 字节的小包,其包数量远多于 1500 字节的大包,设备处理起来会非常吃力。
    • 攻击防御: 典型的 DDoS 攻击就是通过瞬间拉高 PPS 来打崩路由器的处理核心。

定义: 指设备能够以端口物理最大速率处理所有大小的包而不丢包。

  • 核心理解: 这是网络设备的“满分”状态。
    • 计算逻辑: 在千兆以太网中,最小包(64B + 20B 损耗)的线速是 1.488 Mpps。如果设备标称 PPS 低于此值,说明在处理高频小包时会存在瓶颈。

这部分指标衡量链路的稳定性,直接影响实时业务(直播、语音、AI 实时通话)。

定义: 相邻两个数据包到达时间的时间差变化。

  • 核心理解: 抖动比延迟更影响实时性。
    • 影响: 延迟高(比如 100ms)但稳定,语音通话可能只是有延迟;但抖动大(忽大忽小),声音就会出现断续和变调。

定义: 在传输过程中丢失的数据包占总发送包的百分比。

  • 核心理解: 衡量链路健康度的红线。
    • 常见原因: OLT 下行分光比过大导致拥塞、光衰过大(光功率低于 -27dBm)、或者设备 PPS 达到极限。
    • 阈值: 对于视频业务,丢包率通常需要控制在 $0.1%$ 以下才能保证流畅。

核心关注: 用户体验、并发处理能力、流量转化。

这部分指标主要用于衡量服务器和代码的处理能力。

定义: 系统从接收到请求开始,到返回最终结果并呈现给用户所消耗的时间。

  • 核心理解: RT 是用户体验最直观的指标。
    • 主观性: 不同应用标准不同。游戏 <100ms 是流畅,网页 <1s 是优秀,而大数据报表导出几分钟也能接受。
    • 组成: $RT = \text{网络传输时间} + \text{应用服务器处理时间} + \text{数据库读写时间}$。
  • 平均值 vs. 百分位值 (P95/P99):
    • 只观察“平均响应时间”,往往会掩盖问题。比如 99 个请求是 100ms,1 个请求是 10s,平均值看起来还行,但那个 10s 的用户体验极差。
    • P95/P99 RT: 表示 95% 或 99% 的请求都在这个时间内完成。互联网大厂更看重 P99,因为长尾延迟(Long Tail)才是性能瓶颈所在。

定义: 系统在单位时间内处理请求的数量。这是衡量系统“处理能力”的硬指标。

这里需要厘清 TPSQPS 的微妙区别,它们常混用,但在精确场景下有差异:

  • QPS (Queries Per Second - 每秒查询率):
    • 微观视角: 指服务器每秒处理的独立请求数
    • 适用场景: 单个 API 接口、DNS 查询、数据库的 SELECT 次数。
  • TPS (Transactions Per Second - 每秒事务数):
    • 宏观视角: 指系统每秒处理的完整业务流程
    • 换算关系: 一个事务(TPS)可能包含多个请求(QPS)。
    • 案例: 访问一个“首页”(是一个 TPS),可能触发 1 个 HTML 请求、1 个 CSS 请求、1 个 JS 请求(共 3 个 QPS)。
    • 公式: $TPS = \frac{\text{并发数}}{\text{平均响应时间}}$

通俗比喻:

  • TPS 是去餐馆点一套“套餐”(一个完整业务);
  • QPS 是厨房里切菜、炒菜、端盘子等一个个具体的动作。

定义: 系统同时承载的、正在进行操作的用户数量。

三个层级的漏斗模型:

  1. 系统用户数 (System Users): 数据库里存了多少个注册用户。(最大,但不代表性能压力)
  2. 在线用户数 (Online Users): 登录了系统的用户。他们可能在浏览、挂机,不一定在发请求。(比如挂着微信不聊天)。
  3. 并发用户数 (Active Users / Threads): 真正对服务器产生压力的用户。指正在点击按钮、正在等待服务器响应的那些瞬间的用户。

三个指标之间存在的逻辑联系:

  • 如果系统处理得快(响应时间短),同样的并发数下,吞吐量(QPS)就高。
  • 如果系统变慢了(响应时间变长),想要维持同样的 QPS,就必须增加并发线程数(加机器或开更多线程)。
  • 拐点: 当并发数增加到一定程度,CPU 或内存满了,响应时间会急剧变长,此时 QPS 不升反降,系统崩溃。

这部分指标主要用于描述网站的受欢迎程度和流量规模。

  • 定义: 页面浏览量。用户每刷新一次即计算一次。
  • 意义: 衡量网站被“看”了多少次,广告展示的重要指标。
  • 特性: 易通过刷新、爬虫刷量,仅反映页面曝光频次,无法体现真实用户规模。
  • 定义: 统计周期内(通常为1天)访问网站的独立设备数。如一天内,同一台设备(基于 Cookie 或设备指纹)多次访问仅计 1 次 UV。
  • 意义: 衡量有多少“人”(或终端)留下过痕迹。比 PV 更能反映真实用户规模,可衡量用户粘性。
  • 定义: 统计周期内(通常为1天)访问网站的不同公网IP数量,以公网IP为识别依据,同一IP多次访问仅计1次。
  • UV 与 IP 的区别(易混淆点):
    • 局域网/网吧: 10 个人通过同一个路由器上网,IP 是 1 个,但 UV 是 10 个。(UV > IP)
    • 动态 IP/拨号: 1 个人不断断网重连换 IP,IP 是 N 个,但 UV 是 1 个。(IP > UV)
    • 结论:UV 通常比 IP 更能真实反映用户数量。
  • 意义: 适用于衡量网络层面的访问覆盖范围。
  • 定义: 网站在统计周期内订单成交金额。包含付款和未付款的订单(GMV≠实际成交额)。
  • 意义: 电商的核心业绩指标,反映平台订单规模,常用于电商行业的规模对标,存在“刷量空间”(反复下单-退款可虚增GMV)。

大部分系统中,80% 的访问量会集中在 20% 的热门时间段内,QPS计算需聚焦峰值时段的请求压力,确保系统在峰值下稳定运行。

峰值QPS =(总PV数 × 80%)÷(每天总秒数 × 20%)

所需服务器数量 = 峰值QPS ÷ 单台服务器最大QPS(需预留20%-30%冗余,应对突发流量)

每天秒数 = 24小时 × 60分 × 60秒 = 86400秒

场景: 某系统每天有 500 万 PV,单台机器经过压测最大 QPS 为 80,计算峰值QPS及所需服务器数量。

  1. 计算峰值 QPS:

    峰值 QPS=5,000,000×0.886,400×0.24,000,00017,280231.48\text{峰值 QPS} = \frac{5,000,000 \times 0.8}{86,400 \times 0.2} \approx \frac{4,000,000}{17,280} \approx 231.48

    (通常向上取整,按 232 QPS 计算)

  2. 计算机器数量:

    机器数=峰值 QPS单机 QPS=23280=2.9\text{机器数} = \frac{\text{峰值 QPS}}{\text{单机 QPS}} = \frac{232}{80} = 2.9
  3. 【补充】冗余系数(Safety Factor):

    在实际生产中,机器不能跑满 100%,且需要预留资源应对突发流量或机器故障。通常建议预留 20%-30% 的缓冲。

    最终机器数=3 台×1.3(缓冲)3.94 \text{最终机器数} = 3 \text{ 台} \times 1.3 (\text{缓冲}) \approx 3.9 \rightarrow \textbf{4 台}