定位性能瓶颈
- 统计系统 Throughput 和 Latency 数值
- 查看系统 GC 情况、RPC 调用情况、内部线程池使用情况
- 查看操作系统负载(CPU 利用率、内存、I/O、网络带宽)
- Profiler 测试
性能优化策略
- 空间换时间、时间换空间
- 简化代码
- 并行处理
- 算法优化(算法择优、分治、预处理)
- 代码优化(注意字符串操作、多线程调优、异步操作、语言和库择优)
- 网络调优
- 系统调优
- 数据库调优
数据库调优策略
- SQL 扫描行数较多
- 设置合理的索引和字段类型
- 确认 SQL 是否有效利用了索引
- SQL 中做了大量的聚合、计算
- 简化 SQL 语句,将操作逻辑转移到业务层来实现
- SQL 返回的记录数过多
- 使用 limit 来进行分页
- 控制每页的数量大小
- 表中的冗余字段过多
- 拆分为多个关联表
- 锁竞争激烈,甚至出现死锁
- 将并发控制转移到业务层来实现
- 确认 SQL 语句使用了有效的索引,避免锁全表
- 机器性能较低
- 升级机器配置