gpt4 book ai didi

java - 监视 Java 堆使用情况

转载 作者:行者123 更新时间:2023-11-29 04:48:35 25 4
gpt4 key购买 nike

我要监视各个节点的 JVM 内存利用率。该工具 (JON 3.3) 具有不同的指标,如初始堆/非堆、已提交堆/非堆、已用堆/非堆、最大堆/非堆使用率。我决定监视已用堆和已提交堆的使用情况,以观察 JVM 的内存性能。

是否足以监视提到的参数,如果不是,除了已使用和已提交的堆使用情况之外,还应监视哪些其他参数。请就此提出建议。

enter image description here

最佳答案

  • 初始化

    表示Java虚拟机在启动时向操作系统申请内存管理的初始内存量(以字节为单位)。 Java 虚拟机可能会向操作系统请求额外的内存,也可能会随着时间的推移向系统释放内存。 init 的值可能未定义。

  • 使用

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

  • promise

    表示保证可供Java虚拟机使用的内存量(以字节为单位)。提交的内存量可能会随时间变化(增加或减少)。 Java 虚拟机可能会向系统释放内存,并且提交的内存可能少于 init。 committed 将始终大于或等于 used。max 表示可用于内存管理的最大内存量(以字节为单位)。它的值可能未定义。如果已定义,最大内存量可能会随时间变化。如果定义了 max,则使用和提交的内存量将始终小于或等于 max。如果内存分配尝试增加已用内存,即使 used <= max 仍为 used > committed 仍然为真(例如,当系统虚拟内存不足时),则内存分配可能会失败。下图显示了内存池的示例:

    +----------------------------------------------+
    +//////////////// | +
    +//////////////// | +
    +----------------------------------------------+

    |--------|
    init
    |---------------|
    used
    |---------------------------|
    committed
    |----------------------------------------------|
  • 非堆内存(~Perm)

    另外,JVM还有堆以外的内存,称为非堆内存。它在 JVM 启动时创建并存储每个类的结构,例如运行时常量池、字段和方法数据、方法和构造函数的代码,以及内部字符串。

关于java - 监视 Java 堆使用情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36305653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com