gpt4 book ai didi

java - JVM 内存使用量超过操作系统报告的内存使用量

转载 作者:行者123 更新时间:2023-12-01 19:28:12 24 4
gpt4 key购买 nike

我有一个 JVM,报告提交的堆内存约为 8GB(其他部分应该超出此范围)。但我的操作系统显示内存使用量约为 5GB。我知道由于非堆、元空间等原因,内存使用量可能会超过提交的内存,但是使用量怎么可能低于 jvm 报告的值?

free 的输出显示内存使用量为 5.5GB

#free -m
total used free shared buff/cache available
Mem: 24115 5536 16355 10 2223 18209
Swap: 0 0 0

native 内存跟踪器 (NMT) 的输出显示保留内存约为 11 GB

#jcmd <pid> VM.native_memory


Total: reserved=12904933KB, committed=11679661KB
- Java Heap (reserved=8388608KB, committed=8388608KB)
(mmap: reserved=8388608KB, committed=8388608KB)

- Class (reserved=1161913KB, committed=127417KB)
(classes #20704)
(malloc=2745KB #33662)
(mmap: reserved=1159168KB, committed=124672KB)

- Thread (reserved=2585224KB, committed=2585224KB)
(thread #2505)
(stack: reserved=2574004KB, committed=2574004KB)
(malloc=8286KB #12532)
(arena=2934KB #5004)

- Code (reserved=264623KB, committed=90231KB)
(malloc=15023KB #22507)
(mmap: reserved=249600KB, committed=75208KB)

- GC (reserved=378096KB, committed=378096KB)
(malloc=34032KB #45794)
(mmap: reserved=344064KB, committed=344064KB)

- Compiler (reserved=776KB, committed=776KB)
(malloc=645KB #1914)
(arena=131KB #7)

- Internal (reserved=53892KB, committed=53892KB)
(malloc=53860KB #67113)
(mmap: reserved=32KB, committed=32KB)

- Symbol (reserved=26569KB, committed=26569KB)
(malloc=22406KB #204673)
(arena=4163KB #1)

- Native Memory Tracking (reserved=6756KB, committed=6756KB)
(malloc=494KB #6248)
(tracking overhead=6262KB)

- Arena Chunk (reserved=11636KB, committed=11636KB)
(malloc=11636KB)

- Tracing (reserved=10456KB, committed=10456KB)
(malloc=10456KB #787)

- Unknown (reserved=16384KB, committed=0KB)
(mmap: reserved=16384KB, committed=0KB)

操作系统 - Debian 9

Java-

java version "1.8.0_172"
Java(TM) SE Runtime Environment (build 1.8.0_172-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.172-b11, mixed mode)

我已经阅读了一些很棒的答案,例如 Why does a JVM report more committed memory than the linux process resident set size?,它很好地解释了 NMT,但它没有解决这个问题。我想了解这是怎么可能的。

最佳答案

Why does a JVM report more committed memory than the linux process resident set size? 的重复项这与上面答案中解释的保留/提交/驻留内存之间的差异有关。

结束这个问题。

关于java - JVM 内存使用量超过操作系统报告的内存使用量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59288372/

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