cuốn sách gpt4 ai đã làm

java - Jstat 和 Jvisualvm 显示不同的堆使用/分配数字

In lại Tác giả: Walker 123 更新时间:2023-11-29 05:12:24 26 4
mua khóa gpt4 Nike

有一台服务器,我无法在其上运行任何基于 GUI 的分析器(例如 jvisualvm)来监视正在运行的 Java 进程的堆。根据this answer , 我可以使用 jstat -gc 并查看 OU 和 OC 列以找出堆的使用和分配。

但我只是在另一台服务器上比较了 jvisualvm 和 jstat,它们显示的堆使用和分配数字并不相同。

Jvisualvm 显示 Java 进程为堆分配了大约 1GB,并使用了大约 500MB:

nhập mô tả hình ảnh ở đây

但是对于同一个进程,jstat 仅在 OC 列下显示大约 700MB,在 OU 列下显示大约 226MB:

# jstat -gc 39621
S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT
16384.0 17920.0 3984.0 0.0 322560.0 10320.4 699392.0 226295.2 83968.0 47921.1 11966 66.103 12 3.083 69.186

为什么 jvisualvm 和 jstat 显示不同的堆使用和分配数字?

câu trả lời hay nhất

对于 Java 8,jstat 实用程序已更新,并且对于

jstat –gc 

在输出中有这些字段:

S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT   

39936.0 29184.0 0.0 29035.4 273920.0 170661.5 699392.0 39235.9 98480.0 97022.7 8624.0 8163.3 63 0.925 38 2.363 3.289

堆使用情况

要获取当前堆使用情况,大约是jVisualJM中的值,需要加上以下值:

S0U: Survivor space 0 utilization (kB)

S1U: Survivor space 1 utilization (kB)

EU: Eden space utilization (kB)

OU: Old space utilization (kB)

Kiểm traJava 8 Virtual Machine Garbage Collection Tuning Guide ,堆似乎由“年轻”一代(Eden & Survivor 0 & 1 空间)和“老”一代(旧空间)组成。

元空间使用

要获取当前的元空间使用情况,大约是 jVisualJM 中的值,需要以下大小:

MU: Metaspace utilization (kB)

Những điều cần lưu ý

无论出于何种原因,我从未能够在 jstat 和 jVisualJM 之间获得完全相同的值,但足够接近以允许自信地使用这两种工具。

JVM 内存池

有关 JVM 内存池的更多详细信息,请参阅此 StackOverflow question & answer涵盖 Java 7 和 8。

Java 8 Using JConsole guide 中也有一些信息但令人惊讶的是,这仍然提到了 Java 7 永久代空间而不是 Java 8 元空间。

关于java - Jstat 和 Jvisualvm 显示不同的堆使用/分配数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27912101/

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress