调优概述
监控依据
1、运行日志
2、异常堆栈
3、GC 日志
4、线程快照
5、堆转储快照
调优方向
1、合理地编写代码
2、充分并合理的使用硬件资源
3、合理地进行 JVM 调优
性能优化的步骤
1、第一步:性能监控
(1)GC 频繁
(2)CPU load 过高
(3)OOM
(4)内存泄露
(5)死锁
(6)程序响应时间较长
2、第二步:性能分析
(1)打印 GC 日志,通过 GCviewer 或 GCeasy 分析异常信息
(2)灵活运用命令行工具、jstack、jmap、jinfo 等
(3)dump 出堆文件,使用内存分析工具分析文件
(4)使用阿里 Arthas、jconsole、JVisualVM 来实时查看 JVM 状态
(5)jstack 查看堆栈信息
3、第三步:性能调优
(1)适当增加内存,根据业务背景选择垃圾回收器
(2)优化代码,控制内存使用
(3)增加机器,分散节点压力
(4)合理设置线程池线程数量
(5)使用中间件提高程序效率,比如缓存、消息队列等
性能评价 / 测试指标
1、停顿时间 / 响应时间
(1)提交请求和返回该请求的响应之间使用的时间
(2)一般比较关注平均响应时间
(3)在垃圾回收环节中,程序的工作线程被暂停的时间,通过 -XX:MaxGCPauseMillis 设置
2、吞吐量
(1)对单位时间内完成工作量(请求)的量度
(2)在 GC 中,运行用户代码的事件,占总运行时间的比例(总运行时间 = 程序的运行时间 + 内存回收的时间)
(3)吞吐量 = 1 - 1 / (1 + n),其中 -XX:GCTimeRatio=n
3、并发数:同一时刻,对服务器有实际交互的请求数
4、内存占用:Java 堆区所占的内存大小
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战