On 12/9/11 3:03 PM, Dimitris Andreadis wrote:
Brian, I am not sure I understand, especially the reconciliation
bit.
You are saying that whoever is producing the task list to feed to the pool is not
breaking
those tasks into pieces that can be parallelized?
In 7.0 the operations that build up the in-memory configuration model,
load extensions, call service constructors and and tell the MSC to
install the services are all done on a single thread, called the "boot
thread". MSC uses a thread pool to parallelize wiring together and
starting the services, but a lot of work is done on that single thread.
This single threaded boot behavior is the way AS 7.0 always worked. For
7.1 I added logic to execute a lot of that "boot thread" work in
parallel. But that logic is disabled if you set
org.jboss.server.bootstrap.maxThreads.
In any case, we seem to have many threads sitting there idle.
I suppose, I need to look at the code in more detail.
On 09/12/2011 22:02, Brian Stansberry wrote:
> If you set org.jboss.server.bootstrap.maxThreads you disable the boot
> time logic that tries to parallelize running all the operations that
> load extensions and install subsystems subsystem.
>
> Why? Because that parallelization spawns quite a number of threads, and
> the original intent of org.jboss.server.bootstrap.maxThreads was to
> control thread counts. And there's been no time to reconcile the two.
>
> On 12/9/11 11:39 AM, Dimitris Andreadis wrote:
>> I was experimenting a bit with the MSC threadpool size
>> (org.jboss.server.bootstrap.maxThreads) vs boot time and I've put the results
here:
>>
>>
http://community.jboss.org/wiki/ModularServiceContainer-OptimalThreadpool...
>>
>> On my quad-core/dual-threaded machine with 8 reported processors, the default
pool size is
>> 16 (processors x 2). In most cases this looks like an overkill to me, i.e. you
can get
>> pretty much the same or better results with a thread pool of 4, or even 2.
>>
>> Another conclusion seems to be that not too much stuff gets parallelized under
the hood?
>> Even with 1 thread the default config boots pretty much in the same time, while
some benefit
>> kicks in as soon as you have some form of I/O in the full and ha configs. But
even then,
>> with a thread pool of 2 you achieve most of this gain.
>>
>> Do I miss something? Do you see different results?
>>
>> Just try a single threaded boot:
>> standalone.bat -Dorg.jboss.server.bootstrap.maxThreads=1
>>
>> I am using the latest 7.1.0.CR1-SNAPSHOT
>>
>> /D
>> _______________________________________________
>> jboss-as7-dev mailing list
>> jboss-as7-dev(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
>
>
--
Brian Stansberry
Principal Software Engineer
JBoss by Red Hat