问题标签 [jstat]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
725 浏览

java - jstat 和 jcmd 对元空间内存给出不同的答案

我目前正在调查压缩类空间问题。我知道问题出在哪里,但在调查时,我注意到jstat -gc ...jcmd ... GC.heap_info给出了不同数量的元空间和压缩类空间容量和使用情况:

堆容量的数字似乎大致匹配(幸存者、伊甸园和老一代的所有容量都同意)。堆使用数字不完全匹配,但我不希望它们匹配;jstat在这里大约一秒钟后被收集jcm。但是元空间数字全部关闭,jstat数字通常略低于jcmd数字。我重新运行了这两个命令以确认调用之间没有发生类加载,实际上,这两个命令都为元空间编号提供了与以前相同的输出。

这里发生了什么?他们测量这些数字的方式是否略有不同?哪个更准确?

运行时信息:

0 投票
1 回答
483 浏览

java - Java 本机内存跟踪堆提交的数量远远超过堆转储的总数

使用jdk1.8.0_152我正在尝试追踪我的 java 程序的哪一部分使用的内存最多(主要在堆中)

使用top我看到整个过程使用了大约 1.109G 的剩余内存

使用jcmd {PID} VM.native_memory我看到总保留是 4704896 KB,提交是大约 1290820 KB。已提交的内存略多于剩余内存,但我读过并非所有已提交的内存都可以分页到实际内存,所以我不太担心这种差异

我现在主要关心的是我VM.native_memory使用时堆内存使用量和总堆使用量之间的差异jcmd {PID} GC.class_histogram

我还尝试比较使用的堆使用情况jstat -gc {PID},得到的结果类似于GC.class_histogram

根据GC.class_histogramand jstat -gc,堆使用量约为 250MB,但使用VM.native_memory堆使用量(在该Java Heap部分中提交)约为 1000000KB(略小于 1GB),但实际 RSS 内存似乎更接近于VM.native_memory

我现在的猜测是VM.native_memoryJava Heap 包含尚未被垃圾收集的内存,但即使我运行垃圾收集,我看到jstat -gc急剧减少的结果VM.native_memory完全没有受到影响(尽管我听说用户手动调用垃圾收集不会总是导致完整的垃圾收集,但似乎至少这jstat -gc似乎与GC.class_histogram.

我听说的另一件事是,top当使用内存的进程释放它时,并不总是释放剩余内存,直到绝对需要释放该内存。

所以总结一下

  1. 为什么显示与和VM.native_memory不同的堆内存使用情况?jstatGC.class_histogram
  2. 我应该使用哪个指标来确定我的 java 进程正在使用多少内存?(考虑到剩余内存top可能并不总是反映实际使用情况)
0 投票
0 回答
185 浏览

java - G1 GC 中的 Full GC

Jstat 工具提供有关年轻 gc 时间和完整 gc 时间的统计信息以及其他信息。据我所知,G1 GC 中的 Full GC 包括以下阶段:

1)并发标记(不是停止世界)

2) Remarking(停止世界)

3) 空域回收(Stop the world)

4)通过混合gc回收部分空的旧区域(随着时间的推移而发生)

现在,我想知道 jstat full gc time 测量哪个阶段的时间?如果不考虑第 1 阶段和第 2 阶段的完整 gc 时间测量,那么与年轻 gc 相比,为什么完整 gc 时间更多?因为,只有第 2 阶段和第 3 阶段本身似乎是轻量级阶段。

此外,混合 gc 发生在接下来的几个年轻 gc 中。因此,在完整 gc 之后,年轻 gc 时间会增加接下来的几个年轻 gc。我这样假设是对的吗?

我刚刚开始学习 G1 GC 的工作

0 投票
1 回答
276 浏览

java - NMT 类已提交与 Jstat 压缩类空间

我正在调查 OutOfMemoryError: Compressed Class Space 问题。我认为,我找到了它的根本原因和解决方案(由 Hibernate Validator 方法调用的 JAXBContext.newInstance():在用户提交的每个操作之后 buildValidatorFactory),但在我的研究中,我注意到一件令人困惑的事情。

我尝试运行 jcmd VM.native_memory 和 jstat -gc 来跟踪类提交大小和 CCSU(压缩类空间使用):

我预计 NMT 中的“已提交类别”指标和 jstat 中的 CCSU 指标之间没有重大区别,但 jstat 显示的已用内存大约只有 1.72 MB,而已提交类别超过 24 MB。所以我生成了 GC.class_stats 统计数据,它显示 KlassBytes 大约是 1738616 B -> 1,739 MB - 所以它与 CCSU 中的 jstat 显示的值大致相同。我还发现其他元数据(如方法、常​​量等)占用了大约 14,44 MB(这与 mmap 中的值大致相同:committed=14720KB - 但我不知道这个数字是多少)。

那么剩下的部分在哪里呢?NMT 给出的数字到底是多少?

0 投票
1 回答
202 浏览

java - jstat : Survivor 和 Eden Space 容量在一段时间内减少

java(8) 内存容量是否会在 JVM 重新启动之前减少?

我正在使用 jstat -gc 转储内存信息,这是两天的快照。与第一个快照相比,第二个快照对 SC1 和 EC 的容量较小。

有人可以帮助/解释我为什么会看到这种行为吗?这是预期的吗?

0 投票
1 回答
78 浏览

java - 幸存者区域没有交换

jstat -gc 这是我的 gc 命令的结果。为什么 Minor GC 后幸存者区域不交换?为什么年龄一点都没有增加?

0 投票
2 回答
138 浏览

java - 为什么我使用 jstat 命令时“MC”大于“MU”?

为什么当我使用 jstat 命令时 MC 大于 mu?,例如。

在此处输入图像描述

它说MC304768.0while MUis 299380.5

0 投票
2 回答
972 浏览

java - jps、jstat、jstack 等命令显示“未找到”

我正在使用 OpenJDK 64 位服务器 VM(构建 25.275-b01,混合模式)在 Ubuntu 20.04 操作系统上运行 Tomcat 9。当我尝试使用 jstat、jstack 等收集诊断信息时,我看到PID未找到。jps 也无法识别 Tomcat 进程 ID。

我检查了几篇文章,例如onetwothreefour等,但这些文章中给出的答案都没有帮助我解决我的问题!

即使我传递了运行 Tomcat 进程的用户名,jstat 也找不到该进程:sudo -u tomcat jstat -gc 476174 5000

万一这很重要:

  1. 我可以看到 Tomcat 进程以-Djava.io.tmpdir=/tmp 该文件夹由 root 用户拥有但启用了完全权限(777)启动。
  2. 当Tomcat进程启动时,我可以看到一个文件夹名称systemd-private-e6d8b5dc224848f8a64a3e943ac2e9c4-tomcat9.service-UH5knj(服务后的最后几个字符 - 每次重新启动进程时都会更改)以所有者身份创建(可能是因为我使用启动tomcat服务sudo service tomcat9 start)并且该文件夹具有权限的rwx------

有关如何解决此问题的任何提示?

谢谢, 肖巴娜

0 投票
1 回答
80 浏览

java - 无法启动 jstat:无法为对象堆保留足够的空间

我有一个旧的 Jboss 服务器,有 5go 的 RAM。我的 java 应用程序是这样配置的:

当我尝试关闭时,它使用与启动相同的 JAVA_OPTS,所以它失败了。所以我修改了 shutdown.sh 脚本,并添加:

一切正常。但是现在,我的 JMX 统计数据不再起作用了,我假设他们使用 jstat 来测量空闲堆。

当我做一个:

我有消息:

但此时我的服务器上有 1go 的 RAM 可用!JAVA_OPTS jstat 使用什么工作?

0 投票
0 回答
152 浏览

javascript - 在 javascript 中寻找偏态正态分布(pdf、cdf 和 ppf)

我需要为 HTML/javascript 项目中的偏态正态分布实现 pdf(概率密度函数)、cdf(累积分布函数)和 ppf(百分比点函数逆 cdf)。

由于jstat 库为许多其他发行版提供了此功能,我想我可能在这里遗漏了一些明显的东西,但是尽管我检查了所有发行版,但我找不到那里的偏斜法线。有谁知道一个 javascript 库,其中包含偏斜法线,或者可能使用 jstat 的工具创建它(尽管后者可能更像是一个数学问题)?

我知道我可以通过将正态分布 pdf 与互补误差函数(erfc) 相结合来获得 pdf,这很好,但对 cdf 或 ppf 没有太大帮助。

一个不错的近似也可以解决问题,它甚至不必特别准确,但它应该允许一系列不同的偏度和比例参数。我想如果一切都失败了,我可以尝试使用数值积分和类似的东西,但如果有人能帮助我找到更复杂的解决方案,我会很高兴,所以任何想法都会受到赞赏。

提前感谢,如果我忽略了一些东西,我很抱歉。我进行了很多搜索,但找不到解决方案,但我对 javascript 编程很陌生,对文档还不太熟悉。