How much maximum threads we can create in IS?

Hi All,

I am working in 7.1.2 version, I would like to know, how many maximum thread we can create in IS. The Min Mem:1024M and Max Mem:2048M.


whats the JVM being used and Is it 32bit or 64bit?

Hi Kiran,

I would like to know for 32 bit as well as 64 bit.


Are you asking about file memory heap size?

Also try keep min/max heap size same level to get more performance wise.

Min Mem:5048M and Max Mem:5048M (ofcourse this all depends on your OS memory availability/free momory and number of CPU cores (A sys admin/IS admin can give you more specific information per your system)



The JVM we are using is Java HotSpot™ 64-Bit Server VM (Java Version 1.5.0_22 (49.0)). What is the maximum number of threads that we can allocate for this IS? on what parameters does it depend on?


If you are using unix, it depends on kenerl parameter(max_thread_proc)

hope this works for you

As per best practice it can be 3 to 4 times of no of available processors.

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.


Vikas- Can you provide the link to the articles if possible?

Thanks in advance.

Hi Jimmy,
Most of the information i got from “” and some from different - 2 sources.