繁体   English   中英

JVM内存类型

[英]JVM Memory Types

我正在做一个监控项目; 我们有监视软件在工作,并从服务器重新收集指标。 一切工作正常,但是我们需要一些有关JVM内存使用情况详细信息。 我们有一些具有不同内存类型的列。 我们需要知道这些是什么:

  • 非堆
  • 用法
  • 科尔

我们为所有这些列(HeapMax,NonHeapMax,UsageMax,PeakMax和CollMax)获得了最大值,并且还使用了(HeapUsed,NonHeapUsed,UsageUsed,PeakUsed和CollUsed)

我们知道堆和非堆是什么,但是我们不知道使用率,峰值和Coll。

有人知道他们是什么吗?

先感谢您。

用法: -可能是目前所使用的内存(即应用于:图像中)

峰值:-可能是直到该时间为止的已提交内存(即,已提交在图像中)

Coll:-可能是可以使用的最大内存(即,图像中的Max :)

最大值:在运行的JMV的生存期内固定不变。

已使用和已承诺 :根据负载而有所不同。

我已经附上了JConsole的快照,其中列出了这些属性。

从Java 文档链接:

MemoryUsage对象表示内存使用情况的快照。 通常,MemoryUsage类的实例由用于获取有关Java虚拟机的单个内存池或Java虚拟机的整个堆或非堆内存的内存使用信息的方法构造。

MemoryUsage对象包含四个值:

init表示Java虚拟机在启动过程中从操作系统请求用于内存管理的初始内存量(以字节为单位)。

used表示当前使用的内存量(以字节为单位)。

已提交表示可以保证可供Java虚拟机使用的内存量(以字节为单位)。 提交的内存量可能会随时间变化(增加或减少)。

max表示可用于内存管理的最大内存量(以字节为单位)。 它的值可能是不确定的。 如果定义了最大内存量,则可能会随时间变化。

如果定义了max,则已使用和已提交的内存量将始终小于或等于max。

如果内存分配尝试增加已使用的内存,以使used>已提交,即使使用的<= max仍然为真(例如,当系统虚拟内存不足时),则内存分配可能会失败。

查看此链接以了解与内存相关的各种API。

看看这个关于堆和非堆内存类型及其内部的SE问题。

java内存池如何划分?

我没有找到有关CollUsed任何信息,我怀疑问题中的类型错误。 我怀疑如果我没有记错的话,可能是committed内存。

请仔细检查一次确切的API。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM