Keeping your ANT_OPTS open

Please be careful when setting memory-related JVM options in the ANT_OPTS environment variable: our currently recommended value is ‘-Xmx1024m’, and it should only be changed when one of our Ant tasks is unable to allocate enough heap space.

A number of the CruiseControl slave machines had ANT_OPTS settings for ‘-Xms’. This is a bad idea, because it forces any Ant-initiated process to allocate that amount of virtual memory on startup. Forcing initial memory allocation may be optimal for an application server once you’ve analyzed the memory requirements, but makes no sense for a general-purpose utility like Ant.

This bad idea becomes even worse when you realize that our 5 mocks are now run via Ant. The CruiseControl branch build machines had an initial heap allocation of 1024M! That’s right: our mocks were consuming 5GB of memory.

In addition, the machines included another ANT_OPTS setting of ‘-XX:MaxPermSize=128m’. Many years ago this setting was found to be necessary when starting WebLogic for one of our enterprise applications, but it makes no sense for Ant.

I’ve verified/fixed ANT_OPTS on all of the slave pods for both Cruise Control instances.

Please check your workstation, and fix accordingly!

It's only fair to share...
Share on FacebookGoogle+Tweet about this on TwitterShare on LinkedIn

Leave a Reply