Mule http连接器活动线程保留在线程池

时间:2016-10-05 07:32:06

标签: multithreading unix mule solaris performance-testing

我使用mule 2.2.1以及以下http传入接收器配置。

<http:connector name="abc.connector.http" >
    <receiver-threading-profile             maxThreadsActive="500"
            maxThreadsIdle="50"             threadTTL="60000"
            poolExhaustedAction="WAIT"          maxBufferSize="100"         />
</http:connector>

在生产服务器上,JVM经常崩溃。创建的JVM转储为&#34; hs_err_pid.log&#34;有这样的线程:0x07990c00 JavaThread "ActiveMQ Session Task" [_thread_blocked, id=69807, stack(0x08770000,0x087b0000)]

此次崩溃中每次都有大约2100到2300个线程。

我的问题是:

  1. 为何显示_thread_blocked?
  2. 当服务器上没有负载时,线程数不会减少到2000年。为什么会这样?我使用 jstack -l PID 来检查正在运行的线程的数量和 prstat | grep PID 监控solaris上的NLWP。它给出的结果如下:
  3. 17725 application_pprd 3409M 2593M sleep 59 0 0:10:51 0.1% **java/2375**

    1. 如何从池中删除此未使用/不活动的线程以避免崩溃?
    2. 如何为java进程增加NLWP的限制?

0 个答案:

没有答案