Number of JVM on single server ( websphere)

Jaise James

Reputable Poster
All,

I am building a new Webpshere server with Vertical clustering. This server have about 2 , 6 core CPU and 64 GB memory.
I am configuring 5 JVM on this server? Shoudl I reduce this or shoudl I go even higher
In addition, I am planning to allocate 4 GB memory to each JVM
Lastly, what is the recomeneded min and Max memory for JVM. Should they be same or different. What should I set them

Do you guys see any issues with setting.

Thanks
 
Hi Jaise,
We are running Websphere 8.5.5.4 on 3 Win 2009-R2 servers with 32gb and 16 cores. On average, our CPU usage is 10-15% and memory is 50%.
Each jvm as min 2gb and max 5gb.
We have this configured this way so that each jvm host approx. 20 user sessions.
Our user sessions are very large as we have to set inactivity timers to 4 hours plus each user session has it's own database pool as each JDE user has a unique db proxy account.
I think the 2 big things to keep in mind are:
1. Make sure that you have enough memory so that the jvm processes are not paged to virtual memory. This can cause slow performance.
2. Make sure you have enough cpu cores to handle garbage collection threads. We use the gencon policy (which is default for Websphere 8.5) with -Xgcthreads7 set in the jvm arguments.
 
Hello Larry,

Thanks for your reply. I have couple of follow up questions
1. How did you guys determined to keep JVM memory in the range of 2 and 5 GB?
2. Any issue going lower than 2GB for min and/or goign hight than 5GB for max?
2. Is there harm in keeping them same( e.g 5 and 5).
3. Did you guys palyed with different setting to determine what works better or was this a recomendation by Oracle.

By the way, how many JVM do you guys have on each server. Our user inactivity time is only 1 hour. User dont have unique proxy, proxy is unique to a division and dept. We have 12 core ( 2x6) CPU core

Thanks again
 
Hi Jaise,
We basically used trial and error during testing. We tried using Rational Performance Tester but found we could not create a diverse enough test to really mimic user interaction. So, we just tested the old fashion way.
Not too sure about issues going below 2gb or higher than 5gb. I think you might need to be concerned about garbage collection times if you go too large and going too small will just have the jvm size increase anyway.
I've heard that keeping the min and max the same value should keep the garbage collection process from doing a compaction but I haven't tested it out.
Oracle recommended was set max to 2gb. But we found that would not work for use because of our long inactivity timeout and large number of db connections.
Best regards,
Larry
 
All,

I am building a new Webpshere server with Vertical clustering. This server have about 2 , 6 core CPU and 64 GB memory.
I am configuring 5 JVM on this server? Shoudl I reduce this or shoudl I go even higher
In addition, I am planning to allocate 4 GB memory to each JVM
Lastly, what is the recomeneded min and Max memory for JVM. Should they be same or different. What should I set them

Do you guys see any issues with setting.

Thanks

Hi Jaise.

You don't really mention if / how you plan on clustering the JVMs. Sometimes that makes a difference. One thing I have found is that Server Manager agent struggles to communicate with many JVMs on 1 host vs. one JVMs on many hosts. Something to consider.

Also, my experience is that maxpermsize has as much an impact on performance as the min and max memory.
 
We have F5 COntent switch in front of the Servers, which load balance request among servers. Within the server, we rely on websphere's vertical clustering to load balance among different JVM
 
Hi Jaise,
We also have an F5 load balancer but found that the Websphere cluster still balanced horizontally as well because all the clusters had the same port number so that the URL used by the user community would be the same. We build 4 vertical clusters (1 for each machine), each cluster has 3 jvms. Each machine also had it's own http server. We found that the plug-in would choose the jvm based on the port number and not limit the connections to just the available jvms on the machine to which the F5 made the connection.
Our goals was to be able to shutdown access to a specific machine from the F5 for scheduled maintenance. But we found that the plugin would still route requests to any of the jvms across all 4 machines even when we had set the runtime weight to zero. We have the plug-in set to random routing.
Have you found a way to prevent new connections to a jvm but still allow currently connect sessions to function?
 
Back
Top