System Thread Pool vs Sytem thread Pool

Hi,
Can anyone please let me know
1 What is the difference between the System Thread pool and Service Thread pool?
2. How are the settings done under resources tab on IS Admin console related to these thread pools?

Currently we have the following settings under resources
Server Thread Pool
Max 375
Min 50
Schduler thread pool
Max 50

The statistics on IS admin console show the following values
Threads current peak
Service threads 1 1231
Sytem Threads 399 405

The peak values for the thread pools seem to have exceeded the maximum limit set.Has anyone experienced this before?

Also is there a maximum limit on thread pool settings?

Mark or RMG could you please help

Regards
Yogesh

Currently our settings are this way
Currently we have the following settings under Resources
Server Thread Pool
Max 125
Min 10
Schduler thread pool
Max 20

Session timeout 30 min

We have not faced any problems so far,

ofcourse how much is your IS peak load/day?Looks your peak threads are so high.

Mark, might help you in depth.

HTH,
RMG

Hi I also have similar question.

What calculation we do todecide the maximum no of threads in server thread pool? Does it has to do something with OS, No of CPU, Memory of OS or heap size of JVM? If yes then how to calculate it?
Lets say we have maximum 1000 threads in server thread pool due to high load of incoming request we made it 10000 but it should be some logical no not like anything we define.

Also difference between Service thread in Server thread.

Regards,
Vikas

I got the answer. It can be 3 to 4 times of no of processors available.

Regards,
Vikas

How do you know the max number you can set the thread pool to?

Hi,
Normally we increase the server thread based on the following criteria:

  1. Available JVM heap size or available RAM on the server.
  2. No of request going to be received on the server per sec.
  3. Processing time per request.
  4. No of available processor.

Normaly you can create near about 2000 threads per core if available ram is 2 GB. As, per thread default stack size allocated is 1 MB. So it means around 2000 threads MAX but all the threads can not be used for your java application as some memory will be used by other resources of OS as well and also when you are setting the max no of threads for your java application you also need to consider the size of the received payload as till that request get processed everything will be in memory (RAM) + consider the average processing time of one request and wait time for request.

To get the no of processor available in your system, you can use the following java program.

import java.lang.*;

class GetNoOfProcessors{
public static void main(String arg)
{
int i = Runtime.getRuntime().availableProcessors();

System.out.println(“No of available Processor :” + i);
}
}

This is what my finding is after reading different - 2 articles on different - 2 forums.

I would request to members of this forum who have idea on this can add more to it and can correct my info if it is incorrect.

Regards,
Vikas

Great info thanks

Hi Vikas,

Thanks for the Post. But can you explain more on “It can be 3 to 4 times of no of processors available.” Whats the analogy on that. lets say i have Quad processor, then how does this number work?

Thanks,
Niteesh

Hi Niteesh,
This is something which i was not much satisfied with though i got this from some java article i was reading on internet. to check how much processor is available in your machine java code i’ve posted in my last post.
I used that code and found there were 50 processors available on my server it means we can use around 200 thread but i was not satisfied with this answer and after reading more article on java and webMethods whatever i found i mentioned in my previous post.
Let me know if you have any doubt on my previous post.

Thanks,
Vikas

Kindly excuse me, I may sound little dumb here, but the processors you are referring to are CPU? Do you have 50 processors? Usually it will 4,8, 16 … etc right…

Regards,
Niteesh

Hi Niteesh,
You are not sounding dumb at all. Even i had exactly the same doubt. When i went through java API and got this piece of java code. I did not dig much into the reallty of what processor it is talking about. It is actually a physical processor or it talks about logical processor.
I am sorry. I do not have much info on this as of now. If you get to know then please share it with us.

Regards,
Vikas

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.