2012-07-06 70 views
0

使用Java Visual VM: 我可以看到幾乎100個處於WAIT狀態的線程。處於等待狀態的HTTP線程數量非常多

在JBoss中server.xml中我有:

<!-- A HTTP/1.1 Connector on port 8080 --> 
    <Connector port="8080" address="${jboss.bind.address}" 
    maxThreads="250" strategy="ms" maxHttpHeaderSize="8192" 
    emptySessionPath="true" 
    enableLookups="false" redirectPort="8443" acceptCount="100" 
    connectionTimeout="20000" disableUploadTimeout="true"/> 

我對JBoss的service.xml的線程池,看起來像:

<mbean code="org.jboss.util.threadpool.BasicThreadPool" 
     name="jboss.system:service=ThreadPool"> 
     <attribute name="Name">JBoss System Threads</attribute> 
     <attribute name="ThreadGroupName">System Threads</attribute> 
     <attribute name="KeepAliveTime">60000</attribute> 
     <attribute name="MaximumPoolSize">10</attribute> 
     <attribute name="MaximumQueueSize">1000</attribute> 
     <attribute name="BlockingMode">run</attribute> 
    </mbean> 

在線程轉儲多數線程都處於跟隨狀態:

"http-0.0.0.0-8180-97" - Thread [email protected] 
     java.lang.Thread.State: WAITING 
     at java.lang.Object.wait(Native Method) 
     - waiting on <23791834> (a org.apache.tomcat.util.net.MasterSlaveWorkerThread) 
     at java.lang.Object.wait(Object.java:485) 
     at org.apache.tomcat.util.net.MasterSlaveWorkerThread.await(MasterSlaveWorkerThread.java:81) 
     at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:107) 
     at java.lang.Thread.run(Thread.java:619) 

Java可視化虛擬機還列出了一個非常高的守護線程數 直播:176守護程序:171

我使用JBoxx 4X

+0

這是生產還是你的開發/文本環境? – Santosh 2012-07-06 13:03:41

+0

連接了多少個客戶端?如果沒有現在,有多少'通常'連接?它可能只是一個線程池,有一堆線程在一個隊列中等待一個套接字對象啓動,這樣他們就可以開始做事了。 – 2012-07-06 13:17:49

+0

加上它不是那麼多,無論如何。快速瀏覽我的盒子現在顯示1098個線程,'NT內核和系統':241,'卡巴斯基反病毒':63和幾乎令人難以置信的66'Windows邊欄':( – 2012-07-06 13:23:56

回答

3

當工作線程空閒時,它通常是在一些新的工作空隊列中等待。

我懷疑這些線程正在等待更多的工作。

+1

+1是的,可能正在等待一些accept()線程推送套接字對象 – 2012-07-06 13:19:08

+0

Peter,但是我在哪裏配置了這麼多的工作線程,或者這是默認值 – Jasper 2012-07-06 13:20:03

+0

通常大約50個用戶將使用該系統 – Jasper 2012-07-06 13:21:49

相關問題