美文网首页JVM
JVM调优有什么经验吗?

JVM调优有什么经验吗?

作者: 嘘寒问暖 | 来源:发表于2022-05-15 23:43 被阅读0次

要明⽩⼀点,所有的调优的⽬的都是为了⽤更⼩的硬件成本达到更⾼的吞吐,JVM的调优也是⼀样,通过对垃圾收集器和内存分配的调优达到性能的最佳。

简单的参数含义

⾸先,需要知道⼏个主要的参数含义。

eden

1. -Xms设置初始堆的⼤⼩,-Xmx设置最⼤堆的⼤⼩

2. -XX:NewSize年轻代⼤⼩,-XX:MaxNewSize年轻代最⼤值,-Xmn则是相当于同时配置XX:NewSize和-XX:MaxNewSize为⼀样的值

3. -XX:NewRatio设置年轻代和年⽼代的⽐值,如果为3,表示年轻代与⽼年代⽐值为1:3,默认值为2

4. -XX:SurvivorRatio年轻代和两个Survivor的⽐值,默认8,代表⽐值为8:1:1

5. -XX:PretenureSizeThreshold 当创建的对象超过指定⼤⼩时,直接把对象分配在⽼年代。

6. -XX:MaxTenuringThreshold设定对象在Survivor复制的最⼤年龄阈值,超过阈值转移到⽼年代

7. -XX:MaxDirectMemorySize当Direct ByteBuffer分配的堆外内存到达指定⼤⼩后,即触发Full GC

调优

1. 为了打印⽇志⽅便排查问题最好开启GC⽇志,开启GC⽇志对性能影响微乎其微,但是能帮助我们快速排查定位问题。-XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:gc.log

2. ⼀般设置-Xms=-Xmx,这样可以获得固定⼤⼩的堆内存,减少GC的次数和耗时,可以使得堆相对稳定

3. -XX:+HeapDumpOnOutOfMemoryError让JVM在发⽣内存溢出的时候⾃动⽣成内存快照,⽅便排查问题

4. -Xmn设置新⽣代的⼤⼩,太⼩会增加YGC,太⼤会减⼩⽼年代⼤⼩,⼀般设置为整个堆的1/4到1/3

5. 设置-XX:+DisableExplicitGC禁⽌系统System.gc(),防⽌⼿动误触发FGC造成问题

相关文章

  • JVM调优有什么经验吗?

    要明⽩⼀点,所有的调优的⽬的都是为了⽤更⼩的硬件成本达到更⾼的吞吐,JVM的调优也是⼀样,通过对垃圾收集器和内存分...

  • 这是我见过最好的JVM笔记,拿到阿里offer后我哭了

    面试经常被问 JVM 如何调优?这个问题该怎么回答?没有实际调优经验怎么办? 一般面试时问JVM调优,主要是因为,...

  • (六)、jvm调优

    2018-10-03 推荐原文 原文作者:纯洁的微笑 什么是jvm调优呢?jvm调优就是根据gc日志分析jvm内存...

  • 三天带你玩转JVM及JVM性能调优

    一、前言 90%的人都没有实践过JVM调优,但是90%的面试都会问。大部分人的简历都会写有JVM调优经验(大家都懂...

  • 笔者带你剖析大规模分布式Java平台JVM性能调优

    你了解JVM吗? 你用过分布式吗? 今天我们就来讲讲Java分布式以及性能调优。 其实说到对JVM进行性能调优早已...

  • jvm

    JVM调优 jvm调优成熟的工具已经有很多:jconsole、大名鼎鼎的VisualVM,IBM的Memory A...

  • 3.JVM调优工具

    JVM调优工具 1、JVM调优工具-JDK工具 1.1 jps jps:Java Virtual Machine ...

  • JVM调优之经验

    在生产系统中,高吞吐和低延迟一直都是JVM调优的最终目标,但这两者恰恰又是相悖的,鱼和熊掌不可兼得,所以在调优之前...

  • 调优进阶

    什么是调优? 根据需求进行JVM规划和预调优 优化运行JVM运行环境(慢,卡顿) 解决JVM运行过程中出现的各种问...

  • JVM调优补充

    本文将不具体讲述JVM的机制,重点关注JVM有哪些可以调优的参数,这些参数对JVM又有哪些影响 一、调优方向参考表...

网友评论

    本文标题:JVM调优有什么经验吗?

    本文链接:https://www.haomeiwen.com/subject/jqliurtx.html