-
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: 2151 , 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 CDS 类数据共享 Class Data Sharing
作用 类数据共享。 减少启动时间,降低内存占用。 注意:必须由多个JVM。 文件位置 Linux/macOS: $JAVA_HOME/lib/server/c
2023-12-11, Views: 2089 , Topics: Java
-
Java LockSupport 几种唤醒机制
暂停线程 LockSupport使用park系列方法底层调用C++代码来暂停线程。 唤醒线程 LockSupport的park方法上有一段注释: Some o
-
状态值 0 到 1 和 1 到 0 切换
需求 修改状态位,由0变为1,由1变为0。 方法一 使用1-var实现。 // 0 -> 1 int status = 0; status = 1 -
2023-12-07, Views: 1342 , Topics: Java
-
Java 计算分页参数 page 和 size 三种方法
方法一(推荐) //总记录数 int rows=21; //每页显示的记录数 int pageSize=5; //页数 int pageSum=(row
2023-12-06, Views: 1839 , Topics: Java
-
PostgreSQL timestamp 与 timestamptz 区别
相同点 都占用8字节。 存储时没有本质区别,都不携带时区信息。 不同点 insert returning和select时返回给客户端数据时不同。 inse
2023-11-11, Views: 2446 , Topics: PostgreSQL Java
-
使用 SDKMAN! 管理 JDK
安装 执行安装命令 curl -s "https://get.sdkman.io" | bash 安装完成刷新环境变量 source "/root/.sdkman/bin/sdkman-init.
-
Linux smaps_rollup 及 status 查看 Java 进程内存占用
需求 排查Java进程频繁被Kubernetes的OOMKiller,需查看Java进程占用的总内存。 Java除了堆内存外,还有非堆内存和堆外内存。 排查工具
-
SonarQube Java 单元测试覆盖率为零解决方法
现象 在IDEA中使用Run with Coverage能显示覆盖率。 但SonarQube中一直显示覆盖率为0。 解决方法 对于Maven构建的项目,添加ja
-
Java jstat 查看类加载、卸载情况
命令 jstat -class 1 输出 bash-4.4# jstat -class 1 Loaded Bytes Unloaded Bytes