[讨论] JVM堆外内存泄露的问题

charleehu 2013-02-18
[root@TJHY251-103 ~]# java -version
java version "1.6.0_39"
Java(TM) SE Runtime Environment (build 1.6.0_39-b04)
Java HotSpot(TM) 64-Bit Server VM (build 20.14-b01, mixed mode)

jvm参数:Xmx4g -Xms4g -XX:PermSize=256m -XX:MaxPermSize=256m -Xss256K

每1秒开500用例持续压测,resin显示活跃线程大约在1000,看到java进程占用内存在以100M/3s的速度增长,持续一段时间后,top下已经占了7.1G了。
13971 root      15   0 8724m 7.1g  13m S  0.0 90.6  38:40.39 java

这是R大的工具看NIO内存
[root@TJHY251-103 ~]# java -cp .:$JAVA_HOME/lib/* DirectMemorySize 13971
Attaching to process ID 13971, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 20.14-b01
NIO direct memory: (in bytes)
  reserved size = 345.664551 MB (362455552 bytes)
  max size      = 3925.375000 MB (4116054016 bytes)

这是挂的gperftools看的内存占用:
Total: 3169.2 MB
  3147.6  99.3%  99.3%   3147.6  99.3% os::malloc
    12.7   0.4%  99.7%     12.7   0.4% ObjectSynchronizer::omAlloc
     4.6   0.1%  99.9%      4.6   0.1% zcalloc
     3.0   0.1% 100.0%      3.0   0.1% init
     0.5   0.0% 100.0%      0.5   0.0% readCEN
     0.3   0.0% 100.0%      0.3   0.0% _dl_allocate_tls
     0.1   0.0% 100.0%      0.1   0.0% instanceKlass::add_dependent_nmethod
     0.1   0.0% 100.0%      0.1   0.0% pthread_cond_wait@GLIBC_2.2.5
     0.0   0.0% 100.0%      3.9   0.1% Thread::Thread
     0.0   0.0% 100.0%      0.0   0.0% pthread_cond_timedwait@GLIBC_2.2.5
     0.0   0.0% 100.0%      0.0   0.0% allocZip
     0.0   0.0% 100.0%      0.0   0.0% _dl_new_object
     0.0   0.0% 100.0%      0.0   0.0% addMetaName
     0.0   0.0% 100.0%      4.6   0.1% Java_java_util_zip_Inflater_init
     0.0   0.0% 100.0%      0.0   0.0% pthread_cond_signal@GLIBC_2.2.5
     0.0   0.0% 100.0%      0.0   0.0% newEntry
     0.0   0.0% 100.0%      0.0   0.0% strdup
     0.0   0.0% 100.0%      0.0   0.0% _nl_intern_locale_data
     0.0   0.0% 100.0%      0.0   0.0% growMetaNames
     0.0   0.0% 100.0%      0.0   0.0% JLI_MemAlloc
     0.0   0.0% 100.0%      0.0   0.0% _dl_check_map_versions
     0.0   0.0% 100.0%      0.0   0.0% _dl_map_object_deps
     0.0   0.0% 100.0%      0.0   0.0% getpwuid
     0.0   0.0% 100.0%      0.0   0.0% __fopen_internal
     0.0   0.0% 100.0%      0.0   0.0% _dl_scope_free
     0.0   0.0% 100.0%      0.0   0.0% dl_open_worker
     0.0   0.0% 100.0%      0.0   0.0% initLoopbackRoutes
     0.0   0.0% 100.0%      0.0   0.0% os::format_boot_path
     0.0   0.0% 100.0%      0.0   0.0% os::strdup
     0.0   0.0% 100.0%      0.0   0.0% __tzfile_read
     0.0   0.0% 100.0%      0.0   0.0% new_composite_name
     0.0   0.0% 100.0%      0.0   0.0% add_to_global
     0.0   0.0% 100.0%      0.0   0.0% os::realloc
     0.0   0.0% 100.0%      0.0   0.0% _nl_load_locale_from_archive
     0.0   0.0% 100.0%      0.0   0.0% expand_dynamic_string_token
     0.0   0.0% 100.0%      0.0   0.0% __tzstring
     0.0   0.0% 100.0%     24.9   0.8% 0x00002aaaab08d44d
     0.0   0.0% 100.0%     10.8   0.3% 0x00002aaaab092859
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab09289e
     0.0   0.0% 100.0%      8.4   0.3% 0x00002aaaab092928
     0.0   0.0% 100.0%      0.1   0.0% 0x00002aaaab09296d
     0.0   0.0% 100.0%      5.1   0.2% 0x00002aaaab0929b2
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab0929f7
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab092a3c
     0.0   0.0% 100.0%     25.7   0.8% 0x00002aaaab092a81
     0.0   0.0% 100.0%      0.2   0.0% 0x00002aaaab092d33
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab092dbd
     0.0   0.0% 100.0%      0.8   0.0% 0x00002aaaab092e02
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab092e47
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab092e8c
     0.0   0.0% 100.0%     19.4   0.6% 0x00002aaaab092f5b
     0.0   0.0% 100.0%      0.1   0.0% 0x00002aaaab09d47d
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab09d493
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab09d7ad
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab09d9b9
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab09eb2b
     0.0   0.0% 100.0%     16.7   0.5% 0x00002aaaab09ecab
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab09f287
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab09f29d
     0.0   0.0% 100.0%      0.1   0.0% 0x00002aaaab09f771
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab09fd4d
     0.0   0.0% 100.0%      0.1   0.0% 0x00002aaaab0a0783
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab0a0799
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab0a0907
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab0a091d
     0.0   0.0% 100.0%      0.1   0.0% 0x00002aaaab0a987d
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab0a9893
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab0a9cbd
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab0aa1a1
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab0aa1b7
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab0aa401
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab0aa417
     0.0   0.0% 100.0%      0.2   0.0% 0x00002aaaab0aa581
     0.0   0.0% 100.0%      2.2   0.1% 0x00002aaaab0aa597
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab0aa701
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab0aa717
     0.0   0.0% 100.0%      0.3   0.0% 0x00002aaaab0aafb1
     0.0   0.0% 100.0%      0.2   0.0% 0x00002aaaab0aafc7
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab0ab1ba
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab0ab34b
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab0ab361
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab0ab5ab
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab0ab5c1
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab0ab907
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab0ab91d
     0.0   0.0% 100.0%      2.2   0.1% 0x00002aaaab0c5c00
     0.0   0.0% 100.0%      0.3   0.0% 0x00002aaaab0ea7bd
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab0ead3c
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab0eadfa
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab0eaecd
     0.0   0.0% 100.0%      0.3   0.0% 0x00002aaaab0edc3a
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab10ac1c
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab145704
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab187c64
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab36819c
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab3741b3
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab387157
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab39666f
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab4b37e7
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab4e847a
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab505ce8
     0.0   0.0% 100.0%     10.9   0.3% 0x00002aaaab569ce6
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab574e97
     0.0   0.0% 100.0%   3102.7  97.9% 0x00002aaaab601926
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab67fb23
     0.0   0.0% 100.0%      0.0   0.0% 0x00002aaaab7d2075
     0.0   0.0% 100.0%      0.0   0.0% AbstractCompiler::initialize_runtimes
     0.0   0.0% 100.0%      0.0   0.0% AbstractInterpreterGenerator::generate_method_entry
     0.0   0.0% 100.0%      0.0   0.0% AdapterFingerPrint::AdapterFingerPrint
     0.0   0.0% 100.0%      0.0   0.0% AdapterHandlerLibrary::create_native_wrapper



看的出是0x00002aaaab601926那块占用了……不太明白那块是什么。

UPDATE
换jdk7之后问题解决。
ray_linn 2013-03-10
gdb attach 进去看一下呗。
sanzangc_sdn 2013-03-15
jmap 打一下内存镜像  eclipse MemAnalyzer 分析下 看看是哪里
yidianfengfan 2013-03-15
我这里压力测试也遇到了, 无招了。
jianglei3000 2013-03-29
jmap/mat是看java堆内存,楼主是进程地址空间不足了
这个就只有gdb调试来看看了
riddle_chen 2013-08-16
想问一下楼主装的是什么版本的gperftools和libunwind,怎么挂gperftools跑resin的
charleehu 2013-08-21
sanzangc_sdn 写道
jmap 打一下内存镜像  eclipse MemAnalyzer 分析下 看看是哪里


这个已经是堆外的内存溢出了,gc很正常。
charleehu 2013-08-21
yidianfengfan 写道
我这里压力测试也遇到了, 无招了。


最后没招换了jdk7之后,问题解决。
charleehu 2013-08-21
riddle_chen 写道
想问一下楼主装的是什么版本的gperftools和libunwind,怎么挂gperftools跑resin的


gperftools-2.0

libunwind-0.99

resin启动脚本加下面2行
export LD_PRELOAD=/opt/perftools/lib/libtcmalloc.so
export HEAPPROFILE=/test
riddle_chen 2013-09-17
charleehu 写道
riddle_chen 写道
想问一下楼主装的是什么版本的gperftools和libunwind,怎么挂gperftools跑resin的


gperftools-2.0

libunwind-0.99

resin启动脚本加下面2行
export LD_PRELOAD=/opt/perftools/lib/libtcmalloc.so
export HEAPPROFILE=/test


谢谢,之前我是也这么试过的,但是一启动后就卡住没往下走,后来换了libunwind-1.1也不行,我是64位linux环境,resin原来用3.1.8pro,换了3.1.12社区版也不行。
Global site tag (gtag.js) - Google Analytics