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 在等锁——换掉等待,而不是换掉机器。
也是在这一年,我开始写技术博客整理这些经验——教是最好的学。