Skip to main content

Java HotSpot VM Settings



The following JVM parameters are recommended:

-Djava.awt.headless=true 
-Dfile.encoding=UTF-8 
-server 
-Xms512m 
-Xmx1024m 
-XX:NewSize=256m 
-XX:MaxNewSize=256m 
-XX:PermSize=256m 
-XX:MaxPermSize=256m 
-XX:+DisableExplicitGC

-Djava.awt.headless=true
  • Headless mode is a system configuration in which the display device, keyboard, or mouse is lacking. Sounds unexpected, but actually you can perform different operations in this mode, even with graphic data.
-server
  • The JDK includes two flavors of the VM -- a client-side offering, and a VM tuned for server applications. These two solutions share the Java HotSpot runtime environment code base, but use different compilers that are suited to the distinctly unique performance characteristics of clients and servers. These differences include the compilation inlining policy and heap defaults. Although the Server and the Client VMs are similar, the Server VM has been specially tuned to maximize peak operating speed. It is intended for executing long-running server applications, which need the fastest possible operating speed more than a fast start-up time or smaller runtime memory footprint. 
-Dfile.encoding=UTF-8  
  • Tell the JVM to use UTF-8 as an encoding for text files to be more platform independent
-Xms512m
  • Set the initial Java Heap memory size to 512 Megabytes
-Xmx1024m
  • Set the maximal Java Heap memory size to 1024 Megabytes
-XX:NewSize=256m
  • Set the default size of new generation to 256 Megabytes
-XX:MaxNewSize=256m
  • Set the default maximum size of new generation to 256 Megabytes
-XX:PermSize=64m
  • Set the initial HotSpot PermGen Memory size to 64 Megabytes
-XX:MaxPermSize=256m
  • Set the maximum PermGen size to 256 Megabytes. This is especially recommended when redeploying Fedora 4 often, since otherwise OutOfMemory in the PermGen space errors will occur.
-XX:+DisableExplicitGC
  •  Disable calls to System.gc(), JVM still performs garbage collection when necessary.

Comments

Popular posts from this blog

JavaMelody: Monitoring the Performance of Tomcat Application Server

Javamelody is an opensource (LGPL) application to monitor Java or Java EE application servers in QA and production environments. JavaMelody is mainly based on statistics of requests and on evolution charts. (Extract from the Javamelody home page) It allows to improve applications in QA and production Give facts about the average response times and number of executions Make decisions when trends are bad, before problems become too serious Optimize based on the more limiting response times Find the root causes of response times Verify the real improvement after optimization It includes summary charts showing the evolution over time of the following indicators: Number of executions, mean execution times and percentage of errors of http requests, sql requests, jsp pages or methods of business façades (if EJB3, Spring or Guice) Java memory Java CPU Number of user sessions Number of jdbc connections These charts can be viewed on the current day, week, month, year or cu...

Tomcat Clustering : Session Replication with Backup Manager

Prerequisite Blogs: How To Install Apache Tomcat Multiple Tomcat Instances on Single Machine Tomcat Clustering: Loadbalancing with mod_jk and Apache Tomcat Clustering : Session Affinity    Backup Manager Backup manager usually used clustered environment. Its like delta manger. But it will  replicate to exactly one other instance(backup instance). Its act  like one instance is Primary  and another instance as backup. Steps to make Session Replication in Tomcat Clustering I am continue from exactly where I left in last session affinity post . So check that post and make sure jumRoute all are set properly. Steps are Enable Multicast routing Add <Cluster> Entries in conf/server.xml file for all instances. Enable the Web Application as distributable Step1:  Enable Multicast routing In Linux Environment most of the system kernel is capable to process the multicast address. We need to add...