2014-09-12 116 views
0

我在JBoss7.1.1.Final上配置了一個AJP連接器。我分配一個線程池,該連接器蒙山一些「壞」的配置:jboss 7域:線程配置

<bounded-queue-thread-pool name="ajp-executor"> 
    <core-threads count="10" per-cpu="20"/> 
    <queue-length count="10" per-cpu="20"/> 
    <max-threads count="10" per-cpu="20"/> 
    <keepalive-time time="10" unit="seconds"/> 
</bounded-queue-thread-pool> 

我關閉和啓動我的JBoss和standalone.xml想出了另一種配置:

<bounded-queue-thread-pool name="ajp-executor"> 
    <core-threads count="90"/> 
    <queue-length count="90"/> 
    <max-threads count="90"/> 
    <keepalive-time time="10" unit="seconds"/> 
</bounded-queue-thread-pool> 

這是一個正確的。好吧,JBoss刪除了「壞」配置。但是,爲什麼計數是90? JBoss如何計算這個值?

回答

0

我看過的許多例子都有一個count和per-cpu屬性集,就像在你的配置中一樣,我一直在試圖弄清楚這到底意味着什麼。看看這個網頁:https://developer.jboss.org/wiki/ThreadPoolConfiguration

per-cpu - 可選的float屬性;指定的數量是 乘以可用的CPU數量。這兩個數量然後是 增加和最終結果是使用的實際計數。 - 多見於: https://developer.jboss.org/wiki/ThreadPoolConfiguration#sthash.OH93iLwC.dpuf

因此,我認爲正在發生的事情是它走20的「每個CPU」屬性和乘以4(假定你有四個CPU?),以獲得80和然後加上你的「計數」得到總數爲90.

10 + (20 * 4) = 90