JVM 性能调优实战

共 19 题
#

1. GC 调优的通用方法论,目标、度量、调整、验证

A 一次改多个参数
B 一次只改一个变量,再量化验证 ✓ 正确答案
C 不度量
D 凭感觉
#

2. JIT 调优,CompileThreshold、MaxInlineLevel、UseNUMA

A 方法内联的最大嵌套深度 ✓ 正确答案
B 线程数
C 堆大小
D GC 次数
#

3. JVM 调优的常见误区与反模式

A 先剖析定位问题
B 单变量调整
C 盲目套用参数,不结合自身应用与度量 ✓ 正确答案
D 量化验证
#

4. TLAB(线程本地分配缓冲)与对象分配速率对 GC 的影响,分配优化方向

A 快速填满新生代,导致 GC 频繁 ✓ 正确答案
B 减少 GC
C 无影响
D 只影响 Full GC
#

5. ZGC 的调优参数,SoftMaxHeapSize、UncommitDelay

A 硬性堆上限
B 栈大小
C GC 线程数
D 软性堆上限,内存压力大时可超过 ✓ 正确答案
#

6. 堆内存调优,Young/Old 比例、晋升阈值、Humongous 对象

A 新生代大小
B GC 线程
C 堆大小
D 对象晋升到老年代的存活次数阈值 ✓ 正确答案
#

7. 容器环境下的 JVM 调优,cgroup 感知、MaxRAMPercentage

A 宿主机内存
B JVM 无感知
C cgroup 内存限制 ✓ 正确答案
D 磁盘
#

8. 线程栈调优,Xss、虚拟线程调度

A -Xss 直接限制虚拟线程栈
B 虚拟线程栈在堆中动态分配,不受 -Xss 直接限制 ✓ 正确答案
C 虚拟线程不用栈
D -Xss 只影响 GC
#

9. 高并发服务的 JVM 参数组合,堆大小、GC 选型、线程栈与直接内存如何配置?

A 吞吐最高
B 延迟可预测(G1/ZGC) ✓ 正确答案
C 单线程
D 无 GC
#

10. JVM 参数的分层,-Xms/-Xmx/-XX 堆区/元空间/直接内存的配置关系如何?

A -Xmx
B -Xms
C -Xss
D -XX:MaxMetaspaceSize ✓ 正确答案
#

11. G1 的关键调优参数(Region 大小、停顿目标、IHOP)与日志验证

A 线程数
B GC 日志的停顿时间 ✓ 正确答案
C 堆大小
D 类加载
#

12. 透明大页(THP)与 HugePages 对 JVM 性能的影响与配置

A 保持开启
B 必须开启
C 无影响
D 关闭 THP,用显式 HugePages 或普通页 ✓ 正确答案
#

13. GC 选型的业务匹配,低延迟选 ZGC/Shenandoah、高吞吐选 G1/Parallel?

A Parallel GC ✓ 正确答案
B ZGC
C Shenandoah
D Epsilon
#

14. JVM 调优的工具链,JMC、JFR、async-profiler、GCViewer

A async-profiler
B jps
C GCViewer ✓ 正确答案
D javap
#

15. Full GC 频繁的定位,内存泄漏、大对象、元空间与 JVM 参数误配如何排查?

A 重启
B 只看 GC 日志
C jps
D 堆转储 + MAT 分析泄漏对象与 GC Roots ✓ 正确答案
#

16. GC 日志与 JFR 的联合分析,停顿来源、分配速率与晋升失败如何定位?

A 网络
B 只看堆大小
C jps
D GC 日志 + JFR 的 GC/分配事件 ✓ 正确答案
#

17. 线上 JVM 问题的诊断工具箱,jps/jstat/jmap/jstack/jcmd 的用途如何?

A jps
B jstack
C jstat -gcutil ✓ 正确答案
D jdep
#

18. 堆外内存泄漏的排查,DirectByteBuffer 与 Netty 的堆外泄漏如何定位?

A io.netty.leakDetectionLevel=paranoid ✓ 正确答案
B 关闭 Netty
C 增大堆
D 无检测
#

19. 用 -XX:+PrintFlagsFinal 校验 JVM 参数生效情况

A 被显式修改过的值 ✓ 正确答案
B 默认值
C 废弃
D 无效