2 Replies Latest reply on Jun 23, 2014 6:20 AM by Ramandeep Singh Nanda

    64 bit java


      I am running java 64 bit on a Windows 2008 R2 server. I am using apache tomcat 6.0 (64 bit version).

      Tomcat provides Maximum  memory pool parameter which is  currently set to 4G. I am looking into increasing it to 40G (yes 40G) because my third party program running tomcat is memory guzzler and needs lots of memory. It is unlikely vendor is going to decrease memory requirements any time soon.

      Will there be a problem if I have such large java heap size (controlled through max memory pool parameter). Since java is 64 bit,  it can handle that large memory. I am not sure whether all memory ha s to be contiguous(?). I am running in a VMWARE environment and my IT dept.   will  guarantee to get 48G memory for my Windows 2008 R2 VM. Appreciate your insights:

      1.       Will my program running under tomcat have any issue using large heap size of 40G?

      2.       Do I expect any performance degradation accessing such large memory?

      3.       Any other ideas are welcome as well.



        • 1. Re: 64 bit java

          Without intense study and research into this subject on your part, the answer is: without a doubt. The default settings for the JVM are for "common usage" scenarios, you are going to create an incredibly uncommon setup here and thus must manually tune the settings of the JVM to match your requirements; especially garbage collection will require your full attention. That is not trivial and even with the best research, it is still a game of experimentation too as the thing that makes it difficult is the application itself which also impacts what you should and should not do.


          A google for "java garbage collection tuning" will be a good start.

          • 2. Re: 64 bit java
            Ramandeep Singh Nanda



            You should create multiple containers rather than having a single container. Heap size this large will increase the GC time and is never recommended.