-
Spring Boot 以 Jar 包方式运行的启动流程解析
流程 Spring Boot Loader通过Main-Class启动,然后根据Start-Class再启动应用。 如果直接把Main-Class指向你的应用类,那么Jar就无法使用Spring B
2026-01-26, Views: 24 , Topics: Spring Boot JVM
-
Spring Boot Jar 包瘦身优化:省略 loader.path 启动参数
概述 在之前的文章中将Uber Jar打包为Separated Jar,启动程序时需要指定-Dloader.path。 MANIFEST.MF 在MANIFEST.MF设置Loader-Path,则
2026-01-23, Views: 43 , Topics: Spring Boot Maven JVM
-
Spring Boot Jar 包瘦身
概念 Uber Jar Spring Boot单一可执行的文件。直接以java -jar app.jar启动。 Thin Jar Spring Boot提供了一种打包时的插件,依赖将在打包时通过网络
2026-01-22, Views: 64 , Topics: Spring Boot Maven JVM
-
Spring Boot @PostConstruct 报错后程序没有退出
期望场景 Kubernetes中,Spring Boot容器在@PostConstruct中进行远程调用拉取配置,如果拉取失败则抛出异常,程序结束运行,Pod重新启动。 程序不退出排查 使用jcmd
2024-12-26, Views: 1324 , Topics: Spring Boot jcmd JVM
-
Java Kubernetes 容器中无法执行 jsp jstat 等诊断命令
现象 Java的jps、jstat等诊断命令在Kubernetes的Pod中失效。 jps jps没有任何输出。 bash-4.4$ jps bash-4.4$
2023-12-28, Views: 2434 , Topics: Kubernetes 诊断工具 JVM
-
Java 不同垃圾回收器占用的内存大小
需求 Java内存中除了堆内存外,还有堆外内存,如:垃圾回收器就会占用一定的堆外内存。 对于在Kubernetes中部署的服务,如果频繁被OOM,需要关注堆外内
-
Java Native Memory Tracking 追踪 JVM 内存使用情况
开启 NMT -XX:NativeMemoryTracking=off: NMT默认关闭,需在启动时开启。 -XX:NativeMemoryTracking=
-
Java 最大堆内存 500M Kubernetes Pod 最大内存 700M 出现了 OOM
现象 Java服务部署在Kubernetes中,Pod的内存大小设置为700M,Java堆内存设置的-Xmx为500M,线上频频发生OOMKiller被Kube
2023-12-25, Views: 2168 , Topics: Kubernetes JVM Java
-
Java 堆内存动态调整
参数 JVM中参数MaxHeapFreeRatio,默认值70,表示空闲的堆内存占最大内存(-Xmx)的比例大于设置的比例(-XX:MaxHeapFreeRat
-
Java 线上服务查看 Direct 及 Mapped 堆外内存
需求 需要查看线上服务占用堆外内存的情况。 困难 jcmd等命令行工具,无法查看堆外内存的情况。 NMT也没有追踪堆外内存。 在Kubernetes中部署,无法
-
Java Arena Area 内存占用过高问题
现象 使用top命令查看到Java内存RSS占用过高,堆内存并没有很大。 排查 使用pmap -x pid查看有很多anon,内存占用。 [root@local
-
Java 进程使用的内存组成
内存组成 VM 内存 Heap堆内存 Young Gen新生代 Old Gen老年代 Perm Gen永久代(JDK <=7) Non Heap 非
-
Java 设置堆内存的最大值和最小值的几种方式
InitialHeapSize 默认值:物理内存的1/64。 举例: -Xms100M MaxHeapSize 默认值:物理内存的1/4。 举例:-Xmx1G、
-
Java 命令行 -XshowSettings 查看 JVM 配置
showSettings 显示JVM的配置。 -XshowSettings:category 显示不同category的配置。 category=vm 显示最大
-
Java 日志中异常信息缺少堆栈信息
现象 生产环境下日志输出的异常只有一行异常名称,没有具体的堆栈信息。 示例 public class OmitStackTraceInFastThrowDemo
-
Java 查看虚拟机日志
默认日志 不配置启动参数,默认是warning级别,输出uptime、level、tags三个标识符。 -Xlog:all=warning:stdout:upt
-
Java 命令行参数浏览器
作用 查看Java不同版本的JVM参数,查看参数是否过期、删除。 不同JVM发布商之前的区别。 VM Options Explorer 链接 https://c
-
Java 命令行参数参考手册
Java 17 https://docs.oracle.com/en/java/javase/17/docs/specs/man/java.html Java
-
Java 查看诊断 JVM 的命令行参数
命令 使用-XX:+UnlockDiagnosticVMOptions解锁诊断JVM的命令行参数,通过-XX:+PrintFlagsFinal参数查看参数。 j
-
Java 查看实验性质的 JVM 命令行参数
命令 使用-XX:+UnlockExperimentalVMOptions解锁实验性质的命令行参数,通过-XX:+PrintFlagsFinal参数查看参数。