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