This week's book giveaway is in the OCPJP forum. We're giving away four copies of OCA/OCP Java SE 7 Programmer I & II Study Guide and have Kathy Sierra & Bert Bates on-line! See this thread for details.
I have a JSF application running on WAS 6.1 server running on iseries V5R4 The WAS is running on separate memory pool. The memory allotted to the pool is 4GB. The maximum eligible thread count for the WAS pool is given as 500.
Recently I converted my JVM to IBM 32 bit from classic JVM. In the new environment I gave the max heap size as 2000 MB and initial heap size as 96 MB.
I used jmeter scripts to create a load testing. Usually in my production, in the WASserver(WAS61SVR) job I can see no: of threads in the range of 700 to 900. Some times the thread count goes beyond 1000. In production the WAS6.1 is running on base pool.
But when I�m testing in development server, when I create 990 threads, the JVM heap reaches 2048 MB and used memory is in the range 1600-1700 MB. The application works fine in this case.
When the thread count crosses 1000, the WAS6.1 server is shutting down. The heap is the manageable range of 1600-1700 MB even with 999 threads. I repeated the test scenario couple of times, each time when the thread count crosses 1000 the application server shuts down.
Is there any upper count for the number threads for WAS 6.1 server or memory pool which hold WAS server?
Originally posted by ci john: Is there any upper count for the number threads for WAS 6.1 server or memory pool which hold WAS server?
Well, it's pretty obvious that you can't use an infinite number of threads. So that means that, yes, there is a limit to the number of threads you can use.
But that doesn't mean that there is a number hard-coded into WAS somewhere which is the limit. There is a zone beyond which things start to fail, and you have done an experiment which finds where that zone is, approximately. I can't tell what your question is or what kind of help you want.
Joined: Dec 30, 2008
I agree to your point. But the problem is, In the production box WAS server job(WAS61SVR) runs with more than 1000 threads. The JVM used in production is IBM classic JVM and it�s running on base memory pool on iseries.
For better performance, in my development sever, I changed JVM from classic to 32 bit IBM JVM and created a separate memory pool (4 GB) for WAS 6.1 on iseries. This is the only difference.
The WAS 6.1 server job in production runs fine with more than 1000 threads, but with the changed environment it fails at 1000 threads. So my question is, are there any limitations for 32 bit IBM JVM? Or is there any limitations (like max thread count) for a memory pool?