Yelp MySQLStremer 提高了 30x 的系统性能

查看原文

MySQLStreamer 是 Yelp 的数据流水线组件,用于将数据从 MySQL 集群流式传输到 Kafka 数据流水线。为了实现从 100 qps 到 n kqps 的流量变迁,他们用了一些手段做性能优化:改变部署模型,运行在 PyPy 上,优化日志。具体来说,步骤如下:

  • 定义核心的性能指标,主要是吞吐和延迟。
  • 程序发出这些指标数据到时间序列图表程序去。
  • 代码里加上 Profiler。
  • 部署一个跟生产环境一样的 Canary 环境,可以测出性能问题。
  • 理解程序的瓶颈,哪里最费时。
  • 跟生成的 Profile 火焰图做对比,看看是否符合预期,如果不是的话就剖析,然后 fix。
  • 持续迭代这个过程。