JVM 内存类型
JVM Memory Types
我正在做一个监控项目;我们让监控软件正常工作并从服务器重新收集指标。一切正常,但我们需要一些有关 JVM 内存使用情况详细信息的信息。我们有一些具有不同内存类型的列。我们需要知道这些是什么:
- 堆
- 非堆
- 用法
- 高峰期
- 科尔
我们得到了所有这些列(HeapMax、NonHeapMax、UsageMax、PeakMax 和 CollMax)的最大值,并且还使用了(HeapUsed、NonHeapUsed、UsageUsed、PeakUsed 和 CollUsed)
我们知道什么是Heap和NonHeap,但我们不知道Usage、Peak和Coll。
有人知道它们是什么吗?
提前致谢。
Usage :- 可能是当前正在使用的内存(即图像中的 Used:)
Peak :- 可能是当时提交的内存(即图像中的 Commited:)
coll :-可能是可以使用的最大内存(即图像中的Max:)
Max: 在 运行 JMV 的生命周期内是固定的。
已使用和提交:根据负载变化。
我附上了列出这些属性的 JConsole 快照。
来自 java documentation link :
A MemoryUsage object represents a snapshot of memory usage. Instances of the MemoryUsage class are usually constructed by methods that are used to obtain memory usage information about individual memory pool of the Java virtual machine or the heap or non-heap memory of the Java virtual machine as a whole.
一个 MemoryUsage 对象包含四个值:
init表示Java虚拟机在启动时向操作系统申请内存管理的初始内存量(以字节为单位)。
used表示当前使用的内存量(以字节为单位)。
committed表示保证可供Java虚拟机使用的内存量(以字节为单位)。提交的内存量可能会随时间变化(增加或减少)。
max表示可用于内存管理的最大内存量(以字节为单位)。它的值可能未定义。如果已定义,最大内存量可能会随时间变化。
如果定义了最大值,则已用和提交的内存量将始终小于或等于最大值。
如果内存分配尝试增加已用内存,即使已用 <= max used > committed 仍然为真(例如,当系统虚拟内存不足时) ).
看看这个 link 了解与内存相关的各种 API。
看看这个关于堆和非堆内存类型及其内部结构的 SE 问题。
How is the java memory pool divided?
我没有找到任何关于 CollUsed
的信息,我怀疑问题中存在类型错误。如果我没记错的话我怀疑可能是committed
内存
请交叉核对一次 API。
我正在做一个监控项目;我们让监控软件正常工作并从服务器重新收集指标。一切正常,但我们需要一些有关 JVM 内存使用情况详细信息的信息。我们有一些具有不同内存类型的列。我们需要知道这些是什么:
- 堆
- 非堆
- 用法
- 高峰期
- 科尔
我们得到了所有这些列(HeapMax、NonHeapMax、UsageMax、PeakMax 和 CollMax)的最大值,并且还使用了(HeapUsed、NonHeapUsed、UsageUsed、PeakUsed 和 CollUsed)
我们知道什么是Heap和NonHeap,但我们不知道Usage、Peak和Coll。
有人知道它们是什么吗?
提前致谢。
Usage :- 可能是当前正在使用的内存(即图像中的 Used:)
Peak :- 可能是当时提交的内存(即图像中的 Commited:)
coll :-可能是可以使用的最大内存(即图像中的Max:)
Max: 在 运行 JMV 的生命周期内是固定的。
已使用和提交:根据负载变化。
我附上了列出这些属性的 JConsole 快照。
来自 java documentation link :
A MemoryUsage object represents a snapshot of memory usage. Instances of the MemoryUsage class are usually constructed by methods that are used to obtain memory usage information about individual memory pool of the Java virtual machine or the heap or non-heap memory of the Java virtual machine as a whole.
一个 MemoryUsage 对象包含四个值:
init表示Java虚拟机在启动时向操作系统申请内存管理的初始内存量(以字节为单位)。
used表示当前使用的内存量(以字节为单位)。
committed表示保证可供Java虚拟机使用的内存量(以字节为单位)。提交的内存量可能会随时间变化(增加或减少)。
max表示可用于内存管理的最大内存量(以字节为单位)。它的值可能未定义。如果已定义,最大内存量可能会随时间变化。
如果定义了最大值,则已用和提交的内存量将始终小于或等于最大值。
如果内存分配尝试增加已用内存,即使已用 <= max used > committed 仍然为真(例如,当系统虚拟内存不足时) ).
看看这个 link 了解与内存相关的各种 API。
看看这个关于堆和非堆内存类型及其内部结构的 SE 问题。
How is the java memory pool divided?
我没有找到任何关于 CollUsed
的信息,我怀疑问题中存在类型错误。如果我没记错的话我怀疑可能是committed
内存
请交叉核对一次 API。