相关疑难解决方法(0)

什么是Linux内存管理中的RSS和VSZ

Linux内存管理中的RSS和VSZ是什么?在多线程环境中,如何管理和跟踪这两者?

linux

299
推荐指数
7
解决办法
26万
查看次数

驻留集大小(RSS)与在Docker容器中运行的JVM的Java总提交内存(NMT)之间的差异

场景:

我有一个在docker容器中运行的JVM.我使用两个工具进行了一些内存分析:1)top 2)Java Native Memory Tracking.这些数字看起来很混乱,我试图找出导致差异的原因.

题:

对于Java进程,RSS报告为1272MB,报告的总Java内存为790.55 MB.我怎么能解释内存的其余部分1272 - 790.55 = 481.44 MB去哪了?

为什么我想在SO上查看这个问题后仍然保持这个问题的开放性:

我确实看到了答案,解释也很有道理.但是,从Java NMT和pmap -x获取输出后,我仍然无法具体映射实际驻留和物理映射的Java内存地址.我需要一些具体的解释(详细步骤)来找出导致RSS和Java Total提交内存之间差异的原因.

最高输出

在此输入图像描述

Java NMT

在此输入图像描述

Docker内存统计信息

在此输入图像描述

图表

我有一个运行48小时以上的码头集装箱.现在,当我看到一个图表包含:

  1. 给予docker容器的总内存= 2 GB
  2. Java Max Heap = 1 GB
  3. 承诺总量(JVM)=始终小于800 MB
  4. 堆使用(JVM)=始终小于200 MB
  5. 非堆使用(JVM)=始终小于100 MB.
  6. RSS =大约1.1 GB.

那么,在1.1 GB(RSS)和800 MB(Java Total committed memory)之间占用的内存是什么?

在此输入图像描述

java linux memory jvm docker

34
推荐指数
1
解决办法
1万
查看次数

标签 统计

linux ×2

docker ×1

java ×1

jvm ×1

memory ×1