我试图了解服务器内存的使用位置。 当我通过顶部查看系统上的内存使用情况时,我得到了:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6091 oper 20 0 2721m 1.4g 9180 S 0 11.4 6:13.42 java
10854 oper 20 0 2186m 1.1g 5104 S 1 9.1 114:52.15 java
9350 oper 20 0 2293m 971m 4892 S 0 8.0 40:15.68 java
9286 oper 20 0 2082m 800m 4852 S 0 6.6 31:31.44 java
10506 oper 20 0 1936m 711m 4900 S 0 5.9 49:09.64 java
8965 oper 20 0 1918m 680m 5076 S 0 5.6 106:53.10 java
所有这些过程都是在JVM 1.6.0_26上运行的tomcats 6.0.20
正如我们在顶级报告中所看到的,一个流程正在使用1.4GO和另一个1.1GO ......远远超出预期。
当我在第一个进程打开JConsole时,我可以看到累积内存(堆和非堆内存)是200Mo,第二个385 Mo,第三个235Mo。
所以我的问题是不可见的记忆在哪里?
Top - JConsole =
1.4G - 200M = 1.2G
1.1G - 385M = 715M
971M - 235M = 736M
800M - 173M = 627M
有人有想法吗? 非常感谢。