JAVA JVM优化总结
1.设置
-Xms与-Xmx分别是设置jvm的堆内存的初始大小和最大大小。
-Xmx2048m:等价于-XX:MaxHeapSize,设置JVM最大堆内存为2048M。
-Xms512m:等价于-XX:InitialHeapSize,设置JVM初始堆内存为512M。
适当的调整jvm的内存大小,可以充分利用服务器资源,让程序跑的更快。
2.设置GC 为G1
G1的设计原则就是简化JVM性能调优,开发人员只需要简单的三步即可完成调优:
- 第一步,开启G1垃圾收集器
- 第二步,设置堆的最大内存
- 第三步,设置最大的停顿时间
G1中提供了三种模式垃圾回收模式,Young GC、Mixed GC 和 Full GC,在不同的条件
下被触发。
、G1收集器相关参数
-XX:+UseG1GC
使用 G1 垃圾收集器
-XX:MaxGCPauseMillis
设置期望达到的最大GC停顿时间指标(JVM会尽力实现,但不保证达到),默认
值是 200 毫秒。
-XX:G1HeapRegionSize=n
设置的 G1 区域的大小。值是 2 的幂,范围是 1 MB 到 32 MB 之间。目标是根
据最小的 Java 堆大小划分出约 2048 个区域。
默认是堆内存的1/2000。
-XX:ParallelGCThreads=n
设置 STW 工作线程数的值。将 n 的值设置为逻辑处理器的数量。n 的值与逻辑
处理器的数量相同,最多为 8。
-XX:ConcGCThreads=n
设置并行标记的线程数。将 n 设置为并行垃圾回收线程数 (ParallelGCThreads)
的 1/4 左右。
-XX:InitiatingHeapOccupancyPercent=n
设置触发标记周期的 Java 堆占用率阈值。默认占用率是整个 Java 堆的 45%。
demo:‐XX:+UseG1GC ‐XX:MaxGCPauseMillis=100 ‐Xmx256m ‐XX:+PrintGCDetails ‐
XX:+PrintGCTimeStamps ‐XX:+PrintGCDateStamps ‐XX:+PrintHeapAtGC ‐
Xloggc:F://test//gc.log
http://gceasy.io/ 可以分析 gc日志
如果怀疑程序有问题。可以参考如下
方案1
ps -ef | grep 工程 找程序的pid
top -Hp pid 查看该pid进程的内存、cpu等情况
printf ‘x%’ pid 把进程转16进制
jstack pid 打印堆栈信息
根据转换后的16进制的pid。查看jsack的堆栈定位程序
方案2
导出堆转储文件
jmap -dump:format=b,file=file.dump pid
下载通过jvisualvm或其他工具分析堆转储文件定位问题
微服务的话。现在都由springboot admin监控了。就更直观了
以上兩個分析程序的方案可以通過mat工具分析所生成的文件就可以分析到問題了
JAVA JVM优化总结相关推荐
- kafka java jvm 优化_kafka优化–JVM参数配置优化
主要是启动脚本和log4j基本参数的设置和优化,这些参数藏的比较深. 1.JVM参数配置优化 如果使用的CMS GC算法,建议JVM Heap不要太大,在4GB以内就可以.JVM太大,导致Major ...
- java jvm优化(一)
转自http://ifeve.com/jvm-optimize-1/ java由堆来分配所需内存. java有3个代,年轻代.年老代.永久代 垃圾回收:当堆的空间不足以存放新的对象时,这是需要分配内存 ...
- jvm优化_使用Java流和In-JVM-Memory的超低延迟查询
jvm优化 自然界的基本规则(例如光速和通用信息论)对我们可以从传统系统体系结构中获得的最大性能设置了明显的限制. 了解您作为Java开发人员如何使用JVM技术和Java流将性能提高几个数量级. 例如 ...
- Java之JVM 优化经验总结
为什么80%的码农都做不了架构师?>>> 开始之前 Java 虚拟机有自己完善的硬件架构, 如处理器.堆栈.寄存器等,还具有相应的指令系统.JVM 屏蔽了与具体操作系统平台相关 ...
- Java 性能优化系列之3.2[JVM调优]
实用JVM参数 1. JIT 编译参数 JIT(Just-In-Time)编译器, 可以在运行时将字节码编译成本地代码,从而提升函数的执行效率. -XX:CompileThreshold为 JIT编译 ...
- JAVA系列之JVM优化
VM 优化经验总结 通过实例及对应输出解释的形式让您对于 JVM 优化有一个初步认识 周 明耀 发布: 2015-06-25 开始之前 Java 虚拟机有自己完善的硬件架构, 如处理器.堆栈.寄存器 ...
- 知乎问题:北京,2017,多少k的java web程序员应该懂多线程和jvm优化?
知乎问题:https://www.zhihu.com/question/59725713/answer/168294369 谢邀,看你问的诚恳,我也好好回答一番. 先说一下我心目的互联网程序员分级: ...
- Java JVM 虚拟机编译器性能增强优化技术
专栏原创出处:github-源笔记文件 ,github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明. Java JVM-虚拟机专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Java ...
- JVM优化Java代码时都做了什么?
专栏的前几篇文章了解了JVM的内存模型,GC调优的思路,让我们对于Java底层有了一定的了解,那么采用这种思路去提高JVM的性能,减少JVM额外消耗的同时,JVM究竟做了哪些工作,使我们的Java代码 ...
- 调整了一下JVM内存,程序快了700%,Java程序优化笔记
Java程序性能优化是一个永远逃不开的话题,优化无处不在!一个偶然间,小编得到了一份Java程序性能优化的笔记,小编读完这份笔记后大为惊叹,实在是写的太好了,不忍独乐乐,于是把这份笔记免费分享出来,供 ...
最新文章
- Ubuntu下如何解压缩zip,tar,tar.gz,tar.bz2文件
- javascript中this那些事
- ReactiveCocoa入门-part2
- hash算法_一致性hash算法简介
- [LeetCode]113.Path Sum II
- 【NLP_Stanford课堂】正则表达式
- spring boot 集成 mybatis,数据库为mysql
- linux java -xms_为什么JVM比指定的-Xms消耗更少的内存?
- Java教程:Java输出杨辉三角形
- 颜维伦暗示Sun将与英特尔合作研发芯片
- 【免费毕设】基于PHP的产品报价系统的设计与开发(源代码+论文)
- 杰奇2.3内核淡绿唯美小说网站源码 PC+手机版
- 2021-09-11
- 如何下载720云上的全景图片?
- Windows一键清空回收站
- 3年过去了!翟天临的微博又被写论文的研究生们喷了个底朝天...
- SpringBoot集成Minio搭建自己的分布式文件服务器(Minio集成篇)
- 基于PHP+MySQL的大学生求职招聘网站
- 架构设计:系统存储(21)——图片服务器:详细设计(1)
- 韶音骨传导耳机好用吗?韶音和南卡骨传导耳机对比实测
热门文章
- 基于SpringBoot+Vue的企业入库出库系统
- 瑞昱rtl8168网卡支持Linux吗,瑞昱 RTL8168F PCI-E专用网卡驱动,亲测可用
- 您的账号与服务器断开连接,节奏大师您解决服务器断开连接的方法(帐号与服务器断开连接怎么办)...
- C# BackgroundWorker使用总结
- 深度分析《英雄联盟》游戏运营商背后的大数据支撑体系
- IP纯真数据库不同系统环境下版本
- NetWork location failed because baidu location service can not decrypt the request query, please che
- Discuz漏洞复现
- gbk编码文件转化为utf-8
- 快解析助力服装企业实现ERP远程外网访问