<分区>
这是我的 ps -eo 快照,一些进程占用 2.1GB 内存。 其堆的最大大小为 768mb,其元空间大小的最大大小为 256mb。 而且我猜这个过程不会占用超过 1024mb(768+256)。但事实并非如此。 除了堆和元空间,“RSS”中还包括什么?以及如何像堆堆栈分析器一样监视“RSS”内部?
<分区>
这是我的 ps -eo 快照,一些进程占用 2.1GB 内存。 其堆的最大大小为 768mb,其元空间大小的最大大小为 256mb。 而且我猜这个过程不会占用超过 1024mb(768+256)。但事实并非如此。 除了堆和元空间,“RSS”中还包括什么?以及如何像堆堆栈分析器一样监视“RSS”内部?
最佳答案
RSS 是用于任何目的的所有内存的大小,包括 JVM、共享库、线程堆栈、直接内存、内存映射文件、 native 内存使用、 native GFX 组件。堆和元空间只是两个内存区域。
请注意虚拟内存大小为 15 GB。
要查看内存的用途,您可以转储 /proc/{pid}/smaps
,它显示了所有内存区域(并且会有数百个)以及每个内存区域有多少常驻. (在我的机器上运行的 IntelliJ 有 403 个内存区域)
关于linux - Linux RSS 不等于 java Xx + MaxMetaspaceSize 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42767592/