It's all about the answers!

Ask a question

JVM - Memory heap size


Simon Eickel (1.1k75457) | asked Feb 06 '12, 4:49 a.m.
Hello everybody,

we're facing some trouble at the moment while doing some kind of initiation of the JTS.
We're using the CLM just with RTC at the moment.
Doing SourceControl and WorkItem Tracking with Planning and so on.

At the moment we do have some productive teams on it, but nothing special, just arnd 100 users.

Our server model is this:
We do have one server for JTS and CLM.
Win 2008 R2 SP1
RAM: 8GB
CPU: Intel Xeon X5680 Quad 3.33 GHz

Jazz/CLM is running with WebSphere 7.0.19

And one server just for the database.

We have managed the WAS to use 4096MB heap size.
But in the last week we faced some "Out of memory" messages from Java:
************ Start Display Current Environment ************
Log file started at:
************* End Display Current Environment *************
JVMDUMP006I Processing dump event "systhrow", detail "java/lang/OutOfMemoryError" - please wait.

We did now raised the JVM heap size to 5120MB

Can anybody help what this errors means exactly and how to solve it?
If it's just some kind of "surely - you just have to put more memory to the JVM" then please tell me how to find the correct size of the memory the JVM needs.

Greetings,
Simon

Comments
Gustavo Reis commented Feb 16 '12, 8:30 a.m. | edited Aug 01 '12, 11:31 a.m.

Im also interested in JVM settings for the CLM.

5 answers



permanent link
Ralph Schoon (63.6k33646) | answered Aug 01 '12, 11:36 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
Please also consider reading

https://jazz.net/jazz/web/projects/Jazz%20Collaborative%20ALM#action=
com.ibm.team.workitem.viewWorkItem&id=191654

https://jazz.net/jazz/web/projects/Jazz%20Collaborative%20ALM#action=
com.ibm.team.workitem.viewWorkItem&id=198140

Comments
Simon Eickel commented Aug 02 '12, 4:06 a.m.

Hi Ralph,

thanks for those links. Hugh information given but I'm not sure which from those values are the right to set. At the moment after upgrade to v4.0 we faced the same problem again. We now put the min and max to the same value of 4096.

Greetings, Simon


Guido Schneider commented Aug 02 '12, 4:02 p.m.

Hi Ralph, what is the VMmax on a Windows 2008-R2/64bit, WAS 8.0.0.3/64bit and Java 1.6/64bit system with 64GB physical Ram and 16 core's? What do you suggest on a single box: to have a single profile for each application, so you have multiple Java instances with VMmax=4GB each or one with a larg virtual memory (VMmax=20GB) for JTS/CCM/RRC/RQM/RRDI?


Ralph Schoon commented Sep 17 '12, 5:00 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER

Guido, I can't recommend anything here, all I can do is to point to the work items where we collect the data. in addition, I have attended several discussions about one box, several boxes, sigle WAS profile or multiple WAS profiles on a singel box. All approaches have advantages and disadvantages. I would suggest to follow the CLM 2012 Admininstration workshop and set the system up such that an IHS as proxy delegates the requests. This enables you to change the underlying topology if you decide you have to.


permanent link
Simon Eickel (1.1k75457) | answered Apr 03 '12, 4:40 a.m.
Seems to be resolved now.
There is an argument for the JVM of the WebSphere Server Profile which has to be set:
-Xgc:preferredHeapBase=0xFFFE0000

permanent link
Simon Eickel (1.1k75457) | answered Sep 07 '12, 4:27 a.m.
Hi there,

since we faced the same problem while using RTC 4.0 and the -Xgc:preferredHeapBase didn't help (though changing it to the value for RTC 4.0) we found, that it's possible to change the WebContainer of the WAS to synchronous mode.
To do this see http://www.ibm.com/support/docview.wss?rs=180&uid=swg21373312 on section 2.

After we've done this, we don't face any OutOfMemory errors with our java.

Greetings,
Simon

permanent link
Simon Eickel (1.1k75457) | answered Feb 06 '12, 5:27 a.m.
I have found some links with information about sizing but it doesn't fit our problem.
This article https://jazz.net/library/article/641 gives answers for sizing but if it would be correct we shouldn't have any trouble.

This document doesn't give information about JVM heap sizes ... just about system sizes...
https://jazz.net/library/article/551

permanent link
Daniel Toczala (88211514) | answered Nov 26 '12, 11:25 a.m.
FORUM MODERATOR / JAZZ DEVELOPER
Everyone sees different performance, even with the same JVM heap settings.  It's ecause usage models and workloads differ.  A good place to start is a machine with 8GB of memory, and allocating 4GB to the JVM heap.  that leaves 4GB for system memory usage (which the system needs to process network traffic, and manage all of the other thing that an OS has to manage).  A good starting point for a lot of people is to split the physical memory between the system and the JVM's.  In your situation, with two Jazz applications (the JTS and CCM), I guess that I would start with giving each of their JVM's 2GB each.  Then you should use WAS to monitor the JVM usage of the heap, and monitor the system memory usage.

The key here is to take a good starting point, and then to monitor and see how your performance is.  The workload on the server will definitely impact how JVM memory and native memory are used.  Some of the operations that can cause the most pain (in terms of performance), are build operations.  I have seen some customers run continuous integration models, but then do "clean" builds where they reload EVERY file in the workspace for every build.  This results in a lot of traffic (essentially recopying the entire codebase out of the repository for every build).  Just update the workspaces for CI builds, and you can greatly reduce traffic.  Do "clean" builds for baselines and release candidates, those builds that REALLY require a clean build.

Your answer


Register or to post your answer.


Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.