第一步(发现问题):性能监控
- GC频繁
- CPU LOAD过高
- OOM
- 内存泄漏
- 死锁
- 程序响应时间较长
第二步(排查问题):性能分析
- 打印GC日志,通过GCviewer或者gceasy来分析日志信息
- 灵活运用命令行工具,jstack,jmap,jinfo等
- dump出堆文件,使用内存分析工具分析文件
- 使用阿里Arthas,或jconsole,JVisualVM来实时查看JVM状态。
- jstack查看堆栈信息。
第三步(解决问题):性能调优
- 适当增加内存,根据业务背景选择垃圾回收器。
- 优化代码,控制内存使用。
- 增加机器,分散节点压力。
- 合理设置线程池线程数量。
- 使用中间件提高程序效率,比如缓存,消息队列等。
- 其他