当前位置:网站首页>JVM(二十) -- 性能监控与调优(一) -- 概述
JVM(二十) -- 性能监控与调优(一) -- 概述
2022-07-06 23:26:00 【leo_messi94】
1. 大厂面试题
- JVM性能调优都做了什么?
- 有做过JVM内存优化吗?
- 从SQL、JVM、架构、数据库四个方面讲讲优化思路
- JVM的编译优化
- JVM诊断调优工具用过哪些
- jvm怎么调优、堆内存、栈空间设置多少合适
- JVM相关的分析工具使用过的有哪些?具体的性能调优步骤如何
- jvm如何调优,参数怎么设置
- 如何理解内存泄露问题,有哪些情况会导致内存泄露?如何解决
- 每秒几十万并发的秒杀系统为什么会频繁发生GC
- 日均百万级交易系统如何优化JVM
- 线上生产系统OOM如何监控及定位与解决
- 高并发系统如何基于G1回收器优化性能
2. 背景说明
2.1 生产环境中的问题
- 生产环境发生了内存溢出如何处理
- 生产环境应该给服务器分配多少内存合适
- 如何对垃圾回收期的性能进行调优
- 生产环境CPU负载飙高该如何处理
- 生产环境应该给应用分配多少线程合适?
- 不加log,如何确定请求是否执行了某一行代码
- 不加log,如何实时查看某个方法的入参与返回值
2.2 为什么要调优
- 避免出现OOM
- 解决OOM
- 减少Full GC出现的频率
2.3 不同阶段的考虑
- 上线前
- 项目运行阶段
- 线上出现OOM
3. 调优概述
3.1 监控的依据
- 运行日志
- 异常堆栈
- GC日志
- 线程快照
- 堆转储快照
3.2 调优的大方向
- 合理地编写代码
- 充分并合理地使用硬件资源
- 合理地进行JVM调优
4. 性能优化的步骤
4.1 发现问题:性能监控
- GC频繁
- CPU load过高
- OOM
- 内存泄露
- 死锁
- 程序响应时间过长
4.2 排查问题:性能分析
- 打印GC日志,通过GCviewer来分析日志信息
- 灵活运用命令行工具,jstack,jmap,jinfo等
- dump出堆文件,使用内存分析工具分析文件
- 使用阿里arthas或者jconsole、jvisualVM来实施查看JVM状态
- jstack查看堆栈信息
4.3 解决问题:性能调优
- 适当增加内存,根据业务北京选择垃圾回收器
- 优化代码,控制内存使用
- 增加机器,分散节点压力
- 合理设置线程池线程数量
- 使用中间件提高程序效率,比如缓存,消息队列等
5. 性能评价、测试指标
停顿时间(或响应时间)

吞吐量
- 对单位时间内完成的工作量的亮度
- 在GC中:运行用户代码的时间占总运行时间的比例(总运行时间=程序的运行时间+内存回收的时间)图图两位1 - 1/(1 + n)。-XX:GCTimeRatio = n
并发数:同一时刻,对服务器有实际交互的请求数
内存占用:java堆区所占的内存大小
边栏推荐
- 数字化创新驱动指南
- Is PMP really useful?
- 一个酷酷的“幽灵”控制台工具
- npm ERR! 400 Bad Request - PUT xxx - “devDependencies“ dep “xx“ is not a valid dependency name
- np. random. Shuffle and np Use swapaxis or transfer with caution
- sublime使用技巧
- Longest common subsequence (LCS) (dynamic programming, recursive)
- 实现网页内容可编辑
- DOM-节点对象+时间节点 综合案例
- Two methods of thread synchronization
猜你喜欢

带你遨游银河系的 10 种分布式数据库
[email protected]映射关系问题"/>接口间调用为什么要用json、fastjson怎么赋值的、fastjson [email protected]映射关系问题

记录一次压测经验总结

DOM-节点对象+时间节点 综合案例

SQL injection HTTP header injection

U++4 interface learning notes

Error: No named parameter with the name ‘foregroundColor‘

Leetcode (417) -- Pacific Atlantic current problem

使用知云阅读器翻译统计遗传学书籍

torch optimizer小解析
随机推荐
Mysql database (basic)
DBSync新增对MongoDB、ES的支持
JS 的 try catch finally 中 return 的执行顺序
DBSync新增对MongoDB、ES的支持
实现网页内容可编辑
ThinkPHP Association preload with
利用OPNET进行网络任意源组播(ASM)仿真的设计、配置及注意点
腾讯云数据库公有云市场稳居TOP 2!
Dynamically generate tables
Longest non descent subsequence (LIS) (dynamic programming)
Safe landing practice of software supply chain under salesforce containerized ISV scenario
DOM-节点对象+时间节点 综合案例
拿到PMP认证带来什么改变?
y58.第三章 Kubernetes从入门到精通 -- 持续集成与部署(三一)
与利润无关的背包问题(深度优先搜索)
Why is the salary of test and development so high?
Techniques d'utilisation de sublime
最长回文子串(动态规划)
QSlider of QT control style series (I)
Weebly mobile website editor mobile browsing New Era