backend-performance-profile

Why

  • 用户体验
    • 用户留存
  • 运营成本
    • 硬件成本
    • 边际成本

What

  • 响应慢
  • 单机容量低
  • 并发能力弱

How

  • 数据驱动

    • 定性
    • 定量
    • 诊断工具
  • 系统诊断

    • 热点
    • 切分阶段,快速定位。

Example

  • 单机容量低

    • CPU ?
      • 判断
        • load
        • cpu useage
        • cpu steal
      • 定位
        • top
        • stack
      • 分析
        • profile tool
    • 内存

      • 判断
        • mem指标
        • swap
        • 语言相关参数
      • 定位
        • 各种内存诊断工具
      • 分析
        • toll
    • 网络

      • 判断
        • net.if socket异常
      • 定位
        • netstat
        • iftop
  • 响应慢

    • 下游依赖慢: db,cache,service
      • 调用链分析
    • 同步调用(大量同步调用其他服务接口)
      • 调用链 + 定量评估
      • 异步化
    • 逻辑实现:循环调用,本地方法耗时?
      • profiler 查热点。
  • 并发弱
    • 资源瓶颈: 线程池,连接池
      • 保证线程池大小与CPU数量挂钩。
    • 资源竞争: cpu切换,锁
      • 异步化,降低 context switch