【问题标题】:Is JRE 1.6 memory leak in pthread_create?pthread_create 中是否存在 JRE 1.6 内存泄漏?
【发布时间】:2013-08-05 16:33:07
【问题描述】:
Environment Info:
OS:
SLES 11 sp1(Linux linux 2.6.32.59-0.7-default #1 SMP 2012-07-13 15:50:56 +0200 x86_64 x86_64 x86_64 GNU/Linux);
GLIBC:
rpm -qa | grep glibc
glibc-devel-2.11.1-0.17.4
glibc-i18ndata-2.11.1-0.17.4
glibc-32bit-2.11.1-0.17.4
glibc-locale-32bit-2.11.1-0.17.4
glibc-info-2.11.1-0.17.4
glibc-locale-2.11.1-0.17.4
glibc-devel-32bit-2.11.1-0.17.4
glibc-2.11.1-0.17.4;
JRE:
java version "1.6.0_43"
Java(TM) SE Runtime Environment (build 1.6.0_43-b01)
Java HotSpot(TM) 64-Bit Server VM (build 20.14-b01, mixed mode)
JVM Args:
-Xms128m -Xmx128m -XX:MaxPermSize=64m

Problem when the java process runing after a while,resident memory has an increase of 200M.
/proc/${PID}/fd and jstack have no changes.

Then I use gperftools to analyse the memory,as fellow:
time1:
   124.5  31.5%  80.0%    124.5  31.5% pthread_create@@GLIBC_2.2.5
time2:
   162.6  37.3%  81.2%    162.6  37.3% pthread_create@@GLIBC_2.2.5
'pthread_create@@GLIBC_2.2.5' calling increase from 124.5M to 162.6M

pthread_create 中是否存在 JRE 1.6 内存泄漏?

【问题讨论】:

    标签: java memory-leaks pthreads glibc


    【解决方案1】:

    pthread_create 中是否存在 JRE 1.6 内存泄漏?

    这是可能的,但我严重怀疑。

    如果您start() 有很多线程并且它们永远不会终止,那么您泄漏内存。然而,这不是pthread_create 的错。内存泄漏(实际上)在您的代码中。


    在 Java 应用程序中创建无限线程是一件坏事。一个更好的策略是使用带有有限线程池的ExecutorService 实例......并让Java 运行时负责线程的创建。

    【讨论】:

    • 是的,我使用ExecutorService启动线程。并且如Environment Info中所述。在time1和time2中,jstack输出是相似的。
    • @shamokuyuwpz - 那么问题是什么? “泄漏”的堆栈内存很可能根本没有泄漏。它实际上属于线程池中的一个空闲线程。
    • 问题是:为什么pthread_create@@GLIBC_2.2.5占用的内存增加了,而线程数稳定了?
    • @shamokuyuwpz - 但是这两个“事实”都是真的吗?您没有提供任何证据证明这两点之间的线程数是恒定的。关键是您声称在 Java 1.6 中创建线程时存在重大内存泄漏,但我找不到相关的错误报告。最可能的解释是你犯了一个错误......
    • @shamokuyuwpz - 无论哪种方式,如果您想继续前进,您将需要为该问题创建一个 SSCCE ......以便其他人可以(也许)了解正在发生的事情。如果这是一个真正的 JVM 错误,那么您可以在错误报告中包含 SSCCE。
    猜你喜欢
    • 2018-05-19
    • 2011-11-08
    • 2014-09-27
    • 2021-10-01
    • 2011-09-18
    • 2011-06-26
    • 2011-10-07
    • 2011-01-29
    • 2011-05-08
    相关资源
    最近更新 更多