调优概述

监控依据

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 堆区所占的内存大小

posted @   半条咸鱼  阅读(282)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示