2023:性能优化与可观测性——把 3 分钟压到 8 秒

2023:性能优化与可观测性——把 3 分钟压到 8 秒

这一年发生了什么

如果说 2022 年是「搭起来」,2023 年就是「跑得快、看得见」。平台数据量上来之后,去年埋下的所有性能债开始收利息。

技术上的变化

1. DAG 引擎重构:3 分钟 → 8 秒

把同步遍历重构为 CompletableFuture 异步计算流水线:无依赖的指标节点并行执行,依赖就绪即触发。配合线程池隔离与超时兜底,复杂指标计算耗时从 3 分钟优化到 8 秒,计算资源利用率提升 50%。

这次优化让我真正内化了两个词:关键路径(整体耗时取决于最长的依赖链)和并行度(不是开了线程池就并行了)。

2. 存储选型:没有银弹,只有场景

  • 设备高频上报数据从 MySQL 迁到 TDengine:写入性能提升 10 倍,存储成本降低 60%;
  • OLAP 聚合交给 Doris,做指标预计算,大屏接口从秒级降到 200ms 以内
  • 查询侧搭 Caffeine L1 + Redis L2 多级缓存

3. 可观测性体系

SkyWalking 全链路追踪 + Prometheus/Grafana 监控告警。效果是残酷又真实的:线上故障定位从小时级降到分钟级。2021 年那个「先有度量再优化」的念头,终于闭环了。

4. 云原生

12 个微服务全部容器化,Jenkins Pipeline(提交 → 单测 → 镜像 → K8s 部署),部署耗时从 40 分钟降到 10 分钟

个人感悟

优化的顺序应该是:先测量,再怀疑,最后动手。反过来做,几乎一定是白干。

这一年还悟到一点:性能优化最赚的往往不是换组件,而是消除等待。8 秒里的 7 分 52 秒,是线程在等 I/O,CPU 在等锁——换掉等待,而不是换掉机器。

也是在这一年,我开始写技术博客整理这些经验——教是最好的学。