跳到主要内容

性能追踪

Monoceros 当前内部已经包含性能追踪相关组件。对服主来说,你不一定需要直接操作底层追踪器,但你应该知道哪些地方最容易吃性能。

最容易影响性能的模块

模块常见风险
脚本系统高频触发脚本、频繁编译
分发器监听过多事件、事件链过长
调度系统高频周期任务太多
数据包系统同时追踪大量 Tap,甚至启用解析/覆写
动作工作流节点链过长、延迟链太多

服主最该做的优化

1. 降低不必要的触发频率

  • 不要把高频事件都直接接复杂脚本
  • 周期任务不要设得过密
  • 数据包监听只开你真正需要的 Tap

2. 利用缓存和预热

  • 关键脚本可以预热
  • 通过 /mono script stats 观察命中率

3. 拆分职责

  • 事件入口只做路由
  • 真正复杂逻辑放到脚本或工作流里分层处理
  • 不要在一个节点里塞太多职责

性能问题怎么排查

推荐顺序:

  1. /mono debug
  2. /mono status
  3. /mono diag cache
  4. 临时停掉可疑调度、分发器或脚本任务

一个很实用的经验

Monoceros 的设计已经尽量把能力模块化了,所以你排性能问题时,也应该按模块拆:

  • 是脚本问题?
  • 是分发器太多?
  • 是调度太密?
  • 是 Packet Tap 太重?

不要一上来就把所有逻辑一起看,那样很难定位。