Sunteți pe pagina 1din 3

How to make the Cognos Server use more RAM

the maximum amount of memory that can be addressed by a 32bit process is 2GB. What you will probably find is that each BiBusTKServerMain process will use up to 2GB of memory, and Java will also use up to 2GB of memory, so in you 8GB server I would expect the first 2GB to be for the OS (device drivers, kernel, etc) much of it is also shared with the processes running on the server, then 2GB for Java, and then 2 GB for each Cognos BiBusTKServer process. Of course you will probably never see memory utilization for your processes up to 2GB as windows will try and trim the processes back as much as it can. Once the report has completed another report can take over the BiBusTKserverMain process. What this means is that on a typical 8 GB server you can probably run two concurrent reports in Cognos - if you try to run more than two you will probably cause 'thrashing' when the server is spending most of the time swapping processes in and out of virtual memory at the expense of actually doing any real work. I am not sure if you are running a 64 bit version of Cognos you will be able to allocate more process memory, in theory it could has a 64bit process can allocate memory in terms of PB (that's Peta Bytes - a TeraByte is 1000 GB, a PB is therefore 10,000GB). I think you would also need to 64 bit version of Java too! http://businessintelligence.ittoolbox.com/groups/technical-functional/cognos8-l/how-to-make-the-cognos-serveruse-more-ram-4254419 P Please consider the environment before printing this e-mail

http://public.dhe.ibm.com/software/dw/dm/cognos/performance/cognos_specific/crn_and_java_h eap.pdf

What is the java heap?


The heap is the area of memory in which the Java Virtual Machine (JVM) allocates new Java objects; the fast majority of the JVM's memory usage is its heap.

2 What is the JVM?

Contains 2 VMs inside the binary that's executed to start up Java applications. o Client VM o Server VM Each VM is optimized according to the needs of the client and server applications. JVM's top priority is reducing startup time and minimizing the latency produced when the garbage collector reclaims memory. By default Java uses the client VM. The server VM can be selected by passing the server command line option to the JVM on startup. o Do not assume the server VM will be faster!

3 Where does CRN use the JVM?

CRN by default uses JVM that comes with JRE 1.3.1 On startup the "crn\bin\<<startup.bat>> or <<startup.sh>>" is called. The following is set o JAVA_HOME (Defaults to JRE 1.3.1 unless you have gone through the steps to configure JRE 1.4.1+ found on page 33 of the Installation and Configuration Guide) o CATALINA_OPTS (These are the heap arguements) o CATALINA_TMPDIR The "crn\tomcat4.1.27\bin\<<catalina.bat>> or <<catalina.bat>>" is called. o Starts JVM using the CATALINA_OPTS arguments o Starts Tomcat

4 Determining the correct heap settings.

Basically the 32 bit Windows Max Heap (-Xms) is 1536b and the UNIX is 3g. Factors that determine best heap settings: o Operating System (32 bit or 64 bit) o Physical Memory (What is available after the OS is done) o JVM version (The older the version the fewer the options) Initial heap size (-Xms) specifies the amount of OS RAM to allocate to the java heap at the time the JVM starts up. Since CRN is a memory intensive application operating under heavy loads the initial heap is important. If JVM starts up with too little heap and is quickly pounded by users that require many object instantiations, the JVM must repeatedly increase its allocation until it reaches a sufficiently large size for the heap

5 IBM Cognos ReportNet and the Java Heap


IBM Cognos Proprietary Information

To avoid this from happening set the minimum heap (-Xms) and the maximum heap (-Xmx) to the same values. Make copy and open the "crn\bin\<<startup.bat>> or <<startup.sh>>" Option for machine with 1GB RAM looks like this o set CATALINA_OPTS=-Xms768m Xmx768m -XX:MaxHeapFreeRatio=70 XX:NewSize=288m %DEBUG_OPTS% You can configure multiple CRN dispatchers on heavy weight windows machine to increase the utilization of the server.

http://www-01.ibm.com/support/docview.wss?uid=swg21341833

The following explanation is taken from the Proven Practice Doc titled 'Java Garbage Collection' (see link below). Java applications scale "out" better than "up". That is, performance is better by distributing components of an application across many moderate sized Servlet Containers rather than a monolithic instance. Each Servlet Container represents one invocation of Java, and hence may also bind to a distinct CPU. The Cognos 8 application uses Java Native Methods for interaction with external Security Namespaces, and for some Cryptographic functions. These are 32bit libraries, so a 32bit JRE is required (a 64bit JRE cannot load 32bit JNI libraries). A 32bit application can address a very finite amount of RAM. If the application attempts to allocate more RAM than it can address then the Operating System will terminate the application. You will notice that even if Maximum Java Heap is 768MB (recommended), you may observe that the total memory utilisation by the Java process exceeds 1GB. This additional utilisation is Java itself plus JNI.

Java itself also needs some memory for its own operation. The sum of Java working memory, maximum Heap, and JNI must not exceed addressable memory. If the JNI is unable to allocate memory for eg User Session Information [in the CAM subcomponent of the Content Manager] then Java may be terminated. JNI memory is not subject to Garbage Collection, as that memory is managed entirely by the JNI libraries that extend Java. Problems have been observed allocating Java Heap > 1152MB on Windows.

S-ar putea să vă placă și