Java Linux VIRT大小很高

时间:2017-01-16 02:39:45

标签: java linux memory virtual

目前,我已经开发了一个Java应用程序,它在JDK 1.7下运行,当我在Linux上部署这个应用程序并使用命令 top 监视它时,我发现VIRT是如此之高,请看以下,

  PID USER PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
  65044 app  20   0 31.5g 418m  13m S  0.0  0.1   0:55.17 java  

大约需要31.5 GB。

我还使用了pmap -x进一步研究,这里是详细信息,

Address           Kbytes     RSS   Dirty Mode   Mapping
0000000000400000       4       4       0 r-x--  java
0000000000600000       4       4       4 rw---  java
0000000000910000    6544    6544    6544 rw---    [ anon ]
0000000080000000   41472   41324   41324 rw---    [ anon ]
0000000082880000   42496       0       0 rw---    [ anon ]
0000000085200000 1397760      76      76 rw---    [ anon ]
00000000da700000 19517440       0       0 rw---    [ anon ]
0000000581b00000 1224704  322816  322816 rw---    [ anon ]
00000005cc700000 9233408       0       0 rw---    [ anon ]
0000003895600000     128     116       0 r-x--  ld-2.12.so
000000389581f000       8       8       8 r----  ld-2.12.so
0000003895821000       4       4       4 rw---  ld-2.12.so
0000003895822000       4       4       4 rw---    [ anon ]
0000003895a00000    1576     616       0 r-x--  libc-2.12.so
0000003895b8a000    2048       0       0 -----  libc-2.12.so
0000003895d8a000      16      16       8 r----  libc-2.12.so
0000003895d8e000       8       8       8 rw---  libc-2.12.so
0000003895d90000      16      12      12 rw---    [ anon ]
0000003895e00000      92      72       0 r-x--  libpthread-2.12.so
0000003895e17000    2048       0       0 -----  libpthread-2.12.so
0000003896017000       4       4       4 r----  libpthread-2.12.so
0000003896018000       4       4       4 rw---  libpthread-2.12.so
0000003896019000      16       4       4 rw---    [ anon ]
0000003896200000       8       8       0 r-x--  libdl-2.12.so
0000003896202000    2048       0       0 -----  libdl-2.12.so
0000003896402000       4       4       4 r----  libdl-2.12.so
0000003896403000       4       4       4 rw---  libdl-2.12.so
0000003896600000      28      20       0 r-x--  librt-2.12.so
0000003896607000    2044       0       0 -----  librt-2.12.so
0000003896806000       4       4       4 r----  librt-2.12.so
0000003896807000       4       4       4 rw---  librt-2.12.so
0000003896a00000     524      52       0 r-x--  libm-2.12.so
0000003896a83000    2044       0       0 -----  libm-2.12.so
0000003896c82000       4       4       4 r----  libm-2.12.so
0000003896c83000       4       4       4 rw---  libm-2.12.so
0000003899a00000      88      16       0 r-x--  libgcc_s-4.4.7-20120601.so.1
0000003899a16000    2044       0       0 -----  libgcc_s-4.4.7-20120601.so.1
0000003899c15000       4       4       4 rw---  libgcc_s-4.4.7-20120601.so.1

我的应用程序确实是一个多线程应用程序,但它在启动时只有3个。

启动后,我发现VIRT增长到31.5 GB,特别是地址00000000da700000,大约需要20 GB。

有想法的人?感谢。

0 个答案:

没有答案