定位性能瓶颈

  1. 统计系统 Throughput 和 Latency 数值
  2. 查看系统 GC 情况、RPC 调用情况、内部线程池使用情况
  3. 查看操作系统负载(CPU 利用率、内存、I/O、网络带宽)
  4. Profiler 测试

性能优化策略

  1. 空间换时间、时间换空间
  2. 简化代码
  3. 并行处理
  4. 算法优化(算法择优、分治、预处理)
  5. 代码优化(注意字符串操作、多线程调优、异步操作、语言和库择优)
  6. 网络调优
  7. 系统调优
  8. 数据库调优

数据库调优策略

  1. SQL 扫描行数较多
    1. 设置合理的索引和字段类型
    2. 确认 SQL 是否有效利用了索引
  2. SQL 中做了大量的聚合、计算
    1. 简化 SQL 语句,将操作逻辑转移到业务层来实现
  3. SQL 返回的记录数过多
    1. 使用 limit 来进行分页
    2. 控制每页的数量大小
  4. 表中的冗余字段过多
    1. 拆分为多个关联表
  5. 锁竞争激烈,甚至出现死锁
    1. 将并发控制转移到业务层来实现
    2. 确认 SQL 语句使用了有效的索引,避免锁全表
  6. 机器性能较低
    1. 升级机器配置