jvm内存与操作系统显示的内存不一致

时间:2020-01-04 07:49:36

标签: java

我按照以下说明启动了Java程序: java -Xms32m -Xmx32m -jar client.jar

大约一个小时后,我使用top命令查看内存,如下所示:

PID USER      PR  NI    VIRT    RES    SHR �  %CPU %MEM     TIME+ COMMAND                                                                                                                                        
13710 hlkj      20   0 3456.8m 186.0m  16.5m S   0.0  1.2  13:22.03 java   

该过程使用了186.0m。

然后我用jconsole检查了jvm的情况。

已使用堆(32M)+未使用堆(32M)+已使用线程堆栈(28 * 1M)≈90M

那么其他90M内存又去了哪里?

heap used

non-heap used

thread num

jmap内容:

~$ jmap -heap 13710
Attaching to process ID 13710, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.181-b13

using thread-local object allocation.
Parallel GC with 4 thread(s)

Heap Configuration:
   MinHeapFreeRatio         = 0
   MaxHeapFreeRatio         = 100
   MaxHeapSize              = 33554432 (32.0MB)
   NewSize                  = 11010048 (10.5MB)
   MaxNewSize               = 11010048 (10.5MB)
   OldSize                  = 22544384 (21.5MB)
   NewRatio                 = 2
   SurvivorRatio            = 8
   MetaspaceSize            = 21807104 (20.796875MB)
   CompressedClassSpaceSize = 1073741824 (1024.0MB)
   MaxMetaspaceSize         = 17592186044415 MB
   G1HeapRegionSize         = 0 (0.0MB)

Heap Usage:
PS Young Generation
Eden Space:
   capacity = 9961472 (9.5MB)
   used     = 7768720 (7.4088287353515625MB)
   free     = 2192752 (2.0911712646484375MB)
   77.9876708984375% used
From Space:
   capacity = 524288 (0.5MB)
   used     = 98304 (0.09375MB)
   free     = 425984 (0.40625MB)
   18.75% used
To Space:
   capacity = 524288 (0.5MB)
   used     = 0 (0.0MB)
   free     = 524288 (0.5MB)
   0.0% used
PS Old Generation
   capacity = 22544384 (21.5MB)
   used     = 13431544 (12.809318542480469MB)
   free     = 9112840 (8.690681457519531MB)
   59.578225778978926% used

7956 interned Strings occupying 621672 bytes.

0 个答案:

没有答案
相关问题